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

Node.js: How to call method with callback in a cycle?

本文关键字:循环 一个 方法 调用 回调 js Node      更新时间:2023-09-26

如何在循环中调用带有回调的方法?

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

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

您可以尝试此递归调用,它将多少请求 处理。确保将计数声明为全局变量。

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();
 });
}