在请求模块中进行多个API调用的最佳做法是什么?

时间:2016-12-09 03:03:10

标签: javascript node.js rest request

我想再提出一个 var request = require('request'); var mongodb = require('mongodb'); var options = { url: 'http://host/xxxx/rest/domain/all', method:'GET' }; function callback(error, response, body) { if (!error && response.statusCode == 200) { var result = JSON.parse(body); } request(options, callback); function count(error, response, body) { if (!error && response.statusCode == 200) { var result = JSON.parse(body); console.log(result); } } 值的请求。所以请在下面的代码中建议如何提出第二个请求。

示例主机将是

UIViewPropertyAnimator

1 个答案:

答案 0 :(得分:0)

您可以使用立即调用的函数表达式在i循环内为for创建闭包;将i传递给函数调用,将所需变量从result.Reference[i].resourceId传递给IIFE;创建一个单独的函数来处理request循环

for调用的回调
function handleResponse(error, response, body) {
   if (!error && response.statusCode == 200) {
     // do stuff
   }
}

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    var result = JSON.parse(body);
    for(var i=0;i<result.Reference.length;i++) {
      (function(id) {
        request(id, handleResponse)
      // pass value from `result.Reference[i].resourceId` to IIFE here
      })(result.Reference[i].resourceId); 
    }
  }
}

request(options, callback);