以下代码解析为最后一个处理程序中的Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
。
虽然使用promises将数组记录到控制台时,每个都具有状态resolved
并且所有请求都已完成。
MusicService
.getArtists()
.then((res) => {
let arr = res.filter((a) => {
return a.id.length;
});
return Promise.all(arr.map(function(a) {
return fetch(`//service.com/api/artist/${a.id}`);
}));
})
.then((res) => {
console.log(res);
});
那么我错过了什么让这个工作?
答案 0 :(得分:1)
FWIW,这可以简化为:
MusicService
.getArtists()
.then(res => Promise.all(
res
.filter(a => a.id.length > 0)
.map(a => fetch(`//service.com/api/artist/${a.id}`))
)
)
.then(res => {
console.log(res);
});
在上一次回调中,res
会是一系列fetch()
结果,但它不能是其他任何内容。