使用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
// .....
});
});
每个请求都取决于最后一个的结果,因此它们需要是顺序的。但是,我的一些逻辑需要最多五个连续请求,这会引起很多嵌套的噩梦。
我是不是错了?
答案 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