如何在node.js中使用$ .when?

时间:2015-11-07 21:32:20

标签: javascript jquery ajax node.js

我想同时发送一个动态数量的ajax请求,并希望对它们进行回调(即回调最后一个回调),但我使用的是node.js.我发现了一个jquery版本来解决它 Pass in an array of Deferreds to $.when() 但我怎么能在node.js中做到这一点?

由于

2 个答案:

答案 0 :(得分:0)

Promise.all获取一系列promise并返回一个Promise of Array。节点获取模块可用于异步发出HTTP请求(AJAX实际上只是指浏览器执行的请求。)

Bluebird是一个nodejs Promise polyfill。

这样的东西
var fetch = require('node-fetch'),
    Promise = require('bluebird');

function fetchUrls(URLs) {
    return Promise.all(URLs.map(function (URL) {
        return fetch(URL).then(function (response) {
            return response.json();
        });
    }));
}

fetchUrls(['url1','url2']).then(function (data) {
    // do stuff with the result data here
});

答案 1 :(得分:0)

NodeJS不使用AJAX,您有HTTP API或request。您尝试做的事情可以使用Promises或async库来解决。

解决问题的一种方法是(未经测试):

   var async = require("async");
   var request = require("request");
   async.map(["https://target.com/a","https://target.com/b"], request, function (err, data) {
      console.log(data);
   });