Я получаю URL-адреса, указанные в массиве, а затем объединяю полученные результаты. Я хочу игнорировать неудачные выборки.
Хотя тонны сообщений по теме:
- Подождите, пока все обещания не будут выполнены, даже если некоторые отклонят
- https://gist.github.com/nhagen/a1d36b39977822c224b8
Я просто не могу понять, как применить это к моему коду, который выбирает URL-адреса из массива:
Promise.all (arrayOfBlobs.map (x => fetch (x).then (response => response.json())) )
.then (json => {
json.forEach ( x => {
if (Array.isArray (x)) {
// this json has array of objects
console.log (`Received ${x.length} prospects`)
x.forEach ( y => combinedArray.push (y) )
}
else {
// this json has single prospect object
console.log (`Received single prospect`)
combinedArray.push (x)
}
})
this.setState({loadingTable: false, data: combinedArray})
})
.catch (error => {
console.error (error.message)
this.setState({loadingTable: false, data: combinedArray})
})
Например, ниже не сделалработа:
Promise.all (arrayOfBlobs.map (x => fetch (x).then (response => response.json())) )
.then (json => {
json.forEach ( x => {
if (Array.isArray (x)) {
// this json has array of objects
console.log (`Received ${x.length} prospects`)
x.forEach ( y => combinedArray.push (y) )
}
else {
// this json has single prospect object
console.log (`Received single prospect`)
combinedArray.push (x)
}
})
.catch (e => {console.log (`Failed to fetch due to ${e.message}`)})
this.setState({loadingTable: false, data: combinedArray})
})
.catch (error => {
console.error (error.message)
this.setState({loadingTable: false, data: combinedArray})
})
Что мне нужно сделать, чтобы изменить мой код, чтобы неудачные выборки игнорировались?