我有一个promises(request-promises)数组,它们包含在另一个方法中,以便在捕获错误时重试3次。那部分工作正常。我想使用promise.all()因为我最终会有大量的http请求。到目前为止我使用的方法,promise.all()仍然在所有重试尝试完成之前调用它回调函数。有没有办法可以在promise.all()进行回调之前等待所有重试尝试完成。
var http_req = require('request-promise')
function My_Http(retries, options)
{
return http_req(options)
.then(data=>{console.log('success')})
.catch(err => {
retries > 0 ? My_Http(retries-1, options) : console.log(err.message)
})
}
var promises = []
promises.push( My_Http(3, options1))
promises.push( My_Http(3, options2))
promise.all(promises).then( data=> {console.log(data)} )
答案 0 :(得分:1)
好吧,我认为这是一个愚蠢的错误,但可能对其他人有好处,我在My_Http中删除了当时的内容并返回整个三元语句。
var http_req = require('request-promise')
function My_Http(retries, options)
{
return http_req(options)
.catch(err => {
return retries > 0 ? My_Http(retries-1, options) : console.log(err.message)
})
}
var promises = []
promises.push( My_Http(3, options1))
promises.push( My_Http(3, options2))
promise.all(promises).then( data=> {console.log(data)} )