Node.js Nodejs:如何编写高性能异步循环

Node.js Nodejs:如何编写高性能异步循环,node.js,Node.js,有一个initUrl,它是一篇包含下一个blog的文章,定义函数getNextUrl(url,callback(err,nextUrl)),想要获得下一个100个url 在stormjs(开发)中,它写为 var url = initUrl; for(var i=0; i<100; i++){ url = getNextUrl(url, _); } console.log(url); var url=initUrl; 对于(var i=0;i无论您是否调用异步函数和回调,上面的代码不

有一个initUrl,它是一篇包含下一个blog的文章,定义函数getNextUrl(url,callback(err,nextUrl)),想要获得下一个100个url

在stormjs(开发)中,它写为

var url = initUrl;
for(var i=0; i<100; i++){
  url = getNextUrl(url, _);
}
console.log(url);
var url=initUrl;

对于(var i=0;i无论您是否调用异步函数和回调,上面的代码不是自动同步的吗?@Denis他使用的是一种异步速记
\uu
是一种神奇的流控制。无论您是否调用异步函数和回调,上面的代码不是自动同步的吗还是不?@Denis他在使用异步速记
是一种神奇的流控制。我能去掉第三个参数吗urlarr@guilin是的,如果你想让它成为全球性的。我可以删除第三个参数吗urlarr@guilin是的,如果你想让它全球化。
arr = [];
(function recurse(url, i) {
    getNextUrl(url, function(err, nextUrl) {
        if (!err) {
            arr.push(nextUrl);
            if (i < 100) recurse(nextUrl, i++);
        }
    });
}("", 0);
(function recurse(i, err, url) {
    if (!err) arr.push(url);

    if (i < 100) getNextUrl(url, recurse.bind(null, ++i));
}(0, "trick it", url);