流程控制的大神进!(已解决)
发布于 10 年前 作者 Icego 4727 次浏览 最后一次编辑是 8 年前 来自 问答

目前用Node做抓取,流程如下, 1、读取目标地址配置列表(异步) 2、遍历配置列表抓取新闻列表得到内容页Url集合 3、遍历Url集合抓取内容页,同时入库。 此流程涉及多个异步,现流程有些许混乱。代码如下,请大神指点 myconfig.FindConfigList(function (err, ops) { //异步得到配置列表 async.forEachSeries(ops, function (_soption, callback) { //遍历配置列表 spider.getHtmlByUrl(_soption.url, _soption.decode, function (err, html) { //获取列表页, async.forEachSeries(urllist, function (url, cb) { //、遍历Url集合抓取内容页 mynews.InsertNew(news, function (err) {//异步入库 cb(); }); },function(err){ callback() } }); },function(err){ }); });

13 回复

现在是去掉外面层异步(用静态对象代替)正常,加上不正常

使用markdown调整下格式。然后把问题说清楚吧。

@eeandrew 哎,对node绝望了,这奇葩的错误信息,等于没有信息,这流程控制,稍微复杂点的逻辑就各种不稳定,搞的头疼!是不是 node真的不适合做逻辑复杂的程序

@Icego 当然不是了。只是你还没学会异步控制的方法而已。推荐你来听听这个

@eeandrew 恩,感觉Node中流程控制是一道坎,这个在上海啊,北京表示有点远!哈哈,

你可以试试async.waterfall

@chloe 恩,正在实验Async的各种用法

通过对Asynch,360度旋转无死角的研究终于解决了,多谢各位。对异步编程有一更进一步的了解,感觉很棒。尤其是Callback

@Icego 怒赞!后面可以看看eventproxy

@DevinXian 哈哈 你咋知道 我现在正在看eventproxy呢!?

@Icego NodeJS不仅仅有TJ等各路大神,还有朴灵大神~~下次把代码整好看点

@DevinXian 哎呀,好的,这个是初次发帖,markdown还不是很熟悉,朴灵大师的《深入浅出Node》已经在手边了!

回到顶部