分别有下面两个写法,区别就是后者用的 .catch
,为啥同用调用后打印结果不一样呢,前者打印 1
,后者打印 2
function myPromiseRace(arr) {
return new Promise((resolve, reject) => {
for (let item of arr) {
item.then(
res => { resolve(res) },
err => { reject(err) }
)
}
})
}
function myPromiseRace(arr) {
return new Promise((resolve, reject) => {
for (let item of arr) {
item
.then(
res => { resolve(res) }
)
.catch(err => {
reject(err)
})
}
})
}
调用
let p1 = Promise.reject(1),
p2 = Promise.resolve(2),
p3 = Promise.resolve(3)
myPromiseRace([p1, p2, p3]).then(res => {
console.log(res)
}).catch(err => {
console.log(err);
})
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.