Node.js:如何在一个循环中调用callback方法?

如何在循环中调用callback方法?

假设我需要调用http.get但要确保一次只有一个请求正在等待响应(这不会使服务器上的压力太大)

 http.get(url, function(res) { console.log("Got response: " + res.statusCode); }).on('error', function(e) { console.log("Got error: " + e.message); }); 

你可以尝试这个循环调用,这需要处理多less个请求。 确保你把count声明为全局variables。

 var count = 0; function cyclicCall(numberOfRequests, callback) { http.get(url, function (res) { count++; if (numberOfRequests != count) { console.log("Got response: " + res.statusCode); cyclicCall(count, callback) } else { callback(); } }).on('error', function (e) { console.log("Got error: " + e.message); }); } 

之后你可以使用下划线和用户。

 var _ = require('underscore'); var call = _.after(N, callback); for(var i = 0; i < N; i++){ http.get(url, function(res) { console.log("Got response: " + res.statusCode); call(); }).on('error', function(e) { console.log("Got error: " + e.message); call(); }); }