使用异步函数返回值

时间:2016-08-09 21:16:05

标签: node.js callback async.js

现在我有一段代码可以并行生成两个http请求。

var request = require('request');
var async = require('async');
var fs = require('fs');

module.exports = {
    req : function(options) {
        //populate list with 2 lookups
        var lookup_list = [];
        for (var i = 0; i < 2; i++) {
            if(i == 1) {
                options.timeout = 200;
            }
            lookup_list.push(options);
        }
        //iterate through list with and do request calls
         async.map(lookup_list, function(options, next) {
            request(options, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    var body = JSON.parse(body);
                    next(null, body);
                } else {
                    next(error || response.statusCode);
                }
            });
            //after both requests are finished, deal with responses
        }, function(err, results) {
            if (!err) {
                console.log(results);
                /*
                 fs.appendFile('log.txt', JSON.stringify(results[1]) + "\n",function callback(error){
                 if (error) {
                 return console.error('write failed: ', error);
                 }
                 });
                 */
            } else {
                console.error('request failed: ', err);
            }
        });
    }
}

我希望在调用parallel.req()时从async.map回调中返回数组结果。

我试图为req()提供回调,并在async.map的回调中调用它,但没有运气。我也尝试过其他地方的其他回报和回调,但没有成功。我想要一些指导来解决这个问题。

0 个答案:

没有答案