【发布时间】:2018-06-08 07:24:27
【问题描述】:
我查看了其他 stackoverflow 答案,但似乎找不到答案。
实际上,我正在编写一个模块来验证一些数据,然后如果没有错误,则将其传递给第三方 api。
我的问题是,如果 Promise.all 拒绝,那么我最初的调用承诺仍将移至下一个。
------my main app---------
const data = [1,0,1]
api.sendData(data)
.then( () => {
*ALWAYS HITTING THIS*
})
.catch(err => console.log(err))
---------the api---------
return await a.test(data).then(rd => {
return rd
})
.catch(ed => {
return ed
});
-----a.test function--------
let request = data.map((i) => {
return new Promise((resolve, reject) => {
if(i < 1) {
reject('value to low')
}
resolve(i);
});
});
return await Promise.all(data)
});
谁能告诉我为什么我的主应用程序没有击中我的捕获? 上面的代码是伪代码,但描述了问题。
【问题讨论】:
-
为什么,为什么这么多人认为
return await somePromise是正确的做法?提示,没有理由在那里使用await。无论哪种方式,您都在兑现承诺。
标签: javascript ecmascript-6 promise es6-promise