0
나는 오류가 잡히면 다시 시도하기 위해 다른 방법으로 래핑 된 약속 (요청 약속)이 있습니다. 그 부분은 잘 작동합니다. 결국에는 많은 양의 http 요청이 있기 때문에 promise.all()을 사용하려고합니다. 지금까지 사용하고있는 방법으로 모든 재시도 시도가 완료되기 전에 promise.all()은 여전히 콜백 함수를 호출합니다. 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)})
그래, 당신은 적절하게 그것을 연결하기 위해 재 시도 약속을 반환해야합니다. '.then()'은 재 시도를 막지 못했다.'.then()'에서 값을 반환하지 않았기 때문에 반환 값을 얻지 못하게 막는 것이었다. – jfriend00
참고 : then 블록은 괜찮 았습니다. 차이를 만드는 catch 블록의 리턴 값입니다. –
은'.push'가 아닌'.map'을 선호합니다. –