nodejs 是异步的,这样的有点是多并发;
例如你要访问多个网址,可以同时访问并发访问,做多线程下载非常好。
但如果后面的程序需要前面程序的结果才能继续,这种情况 在多并发环境下就有问题。
async可以解决这个问题。
需要注意的是,async 可以控制函数的串行执行,但函数接口必须定好,并且最后执行 callback!
var urlcontent = "http://bbs.chinagame.me/topic/1/1#1"; var r = require(‘request‘); var subject,content; var async = require(‘async‘); function a(callback){ req = r(urlcontent, function(a,b,c) { var body = c; var regex=/<title>(.*?)<\/title>/gim; var title = regex.exec(body); subject = title[1]; var regex1=/itemprop="text">(.*?)<\/div>/gim; var con = regex1.exec(body); content = con[1]; callback(null, ‘two‘); }); } function b(callback){ console.log(subject,content); callback(null, ‘b‘); } async.series([ a,b ]);