在异步函数中更改变量值 - node.js

时间:2014-09-02 00:18:40

标签: node.js

var url = posts.paging.next;
for (var i = 0; i < 3; i++) {
    (function(url,i) {
request(url,{json:true}, function (error, response, body) {
  if (!error && response.statusCode == 200) {
  url = body.paging.next;
  console.log(i+"+++"+url)
  }
});
    })(url,i);
};//for

根据异步请求响应(body.paging.next),İ想要更改代码顶部的 var url 的值。请帮助

注意:我正在尝试从facebook api获取所有评论,为此,我需要获取页面链接。因此,我写了这些代码,如果你有任何其他替代方式,请建议他们比x

1 个答案:

答案 0 :(得分:1)

假设您正在尝试按顺序执行请求(例如,下一个请求依赖于上一个请求中的url),您可以执行类似的操作(使用async模块):

var async = require('async');

// ...

var url = posts.paging.next, i = 0;

async.whilst(
  function() { return i < 3; },
  function(callback) {
    ++i;
    request(url, { json: true }, function(err, response, body) {
      // TODO: handle `err`
      //return callback(err);

      if (!err && response.statusCode === 200) {
        url = body.paging.next;
        console.log(i + '+++' + url);
        callback();
      }
    });
  },
  function(err) {
    // done!
  }
);