请求承诺的顺序请求

时间:2016-01-28 03:15:11

标签: node.js promise node-request

使用request-promise实现以下内容是否存在嵌套方式较少的方法:

r = require('request-promise');

r(url1).then(function(resp1) {
    // Process resp 1

    r(url2 + 'some data from resp1').then(function(resp2) {
        // Process resp 2
        // .....
    });
});

每个请求都取决于最后一个的结果,因此它们需要是顺序的。但是,我的一些逻辑需要最多五个连续请求,这会引起很多嵌套的噩梦。

我是不是错了?

1 个答案:

答案 0 :(得分:8)

您可以在提供给Promise的{​​{1}}函数中返回onFulfilled

Promise.then

这使您可以处理多个调用而不会陷入嵌套的噩梦; - )

此外,如果您不关心哪个r = require('request-promise'); r(url1).then(function(resp1) { // Process resp 1 return r(url2 + 'some data from resp1'); }).then(function(resp2) { // resp2 is the resolved value from your second/inner promise // Process resp 2 // ..... }); 失败,这会使错误处理变得更容易:

Promise