序
在Node.js中,大量的方法(如网络相关的方法)都是异步方法。这对于习惯了传统同步代码的程序员来说,充满了太多"神奇"的现象。
本文要解决的问题是,如何让异步方法获取外部的参数。
有问题的写法:
下面是一个简单的例子。假设有一个异步的网络调用方法,然后循环调用N次,在控制台上输出调用的次数。
var request = require('request');
// 异步获取网络资源的方法
getWeb = (index, getCallback) => {
var url = 'http://www.duzixi.com';
request(url, function (error, response, body) {
if (!error && response.statusCode == 200)
{
getCallback(body);
return body;
} else {
console.log(response.statusCode + " " + error);
getCallback("");
return "";
}
})
}
// 循环调用
for (var i = 0; i <= 10; i++) {
getWeb(i, (b