一尘不染

Node.js中的同步请求

node.js

如果我需要按顺序调用3 http API,那么以下代码将是更好的选择:

http.get({ host: 'www.example.com', path: '/api_1.php' }, function(res) { 
  res.on('data', function(d) {

    http.get({ host: 'www.example.com', path: '/api_2.php' }, function(res) { 
      res.on('data', function(d) {

        http.get({ host: 'www.example.com', path: '/api_3.php' }, function(res) { 
          res.on('data', function(d) {


          });
        });
        }
      });
    });
    }
  });
});
}

阅读 311

收藏
2020-07-07

共1个答案

一尘不染

使用像这样的延期Futures

var sequence = Futures.sequence();

sequence
  .then(function(next) {
     http.get({}, next);
  })
  .then(function(next, res) {
     res.on("data", next);
  })
  .then(function(next, d) {
     http.get({}, next);
  })
  .then(function(next, res) {
    ...
  })

如果您需要传递范围,则只需执行以下操作

  .then(function(next, d) {
    http.get({}, function(res) {
      next(res, d);
    });
  })
  .then(function(next, res, d) { })
    ...
  })
2020-07-07