я столкнулся вопрос в отношении обработки ошибок с Promise.allОбработка ошибок с помощью Promise.all
Я хотел бы ожидать следующий код для вызова крылатой части цепи, когда один из getNetworkstuff()
Promises терпит неудачу. Но вместо этого он просто вызывает следующую, затем часть, а в Консоли браузера отображается нечеткая ошибка.
Promise.all(
[[getNetworkstuff(url1)],[getNetworkstuff(url2)]]
//please note that the arrays within the array are larger in my application
//otherwise I would just use one big array not arrays in arrays
)
.then(function(result){//Stuff worked})
.catch(function(err){//Stuff broke});
function getNetworkstuff(url){
return new Promise(function(resolve,reject){//here will be awesome network code})
}
Я могу видеть, что обещание не выполнил в качестве возвращаемого result
массива содержит соответствующую отвергнута обещание.
[[PromiseStatus]]: "rejected"
[[PromiseValue]]: Error: HTTP GET resulted in HTTP status code 404.
Может кто-нибудь сказать мне, почему catch
не называется? (Я знаю, что если я просто массив Promises в Promise.all()
из которых один отторгает)
У вас есть массив массивов. Скорее всего, вам нужно будет называть 'Promise.all' для каждого. –
Promise.all берет массив обещаний как аргумент, а не массив массивов –
На самом деле, я пробовал массивы массивов, и он действительно работает через них – Baiteman