如何确保请求按顺序完成?

时间:2015-06-18 11:17:25

标签: bluebird requestjs

我想一个接一个地请求一个页面,以下代码似乎同时请求所有页面,有没有办法在前一个页面完成后获取一个页面?感谢

var Promise = require("bluebird");
var request = Promise.promisifyAll(require('request'));
var URLS = ["http://sample.com/j1", "http://sample.com/j2"]

Promise.map(URLS, function (item) {
    return request.postAsync({url: item}).spread(function (response,body) {
    var items = JSON.parse(body)
    return items
})
}).then(function (r) {
    console.log(r.length)
})

1 个答案:

答案 0 :(得分:0)

您可以设置concurrency级别,该级别特定于bluebird。

ignored

这将一次发出所有承诺。