【发布时间】:2018-08-01 13:49:27
【问题描述】:
function testPromise(id) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (typeof id === 'number') {
resolve(id);
} else {
reject('error');
}
}, 500);
}
);
}
async function test(){
try{
testPromise(10)
for(let i=0 ; i<10000; i++){
....
}
.
.
}catch(err){
console.log(err)
}
}
test();
好的考虑上面的代码我想异步运行testPromise函数所以如果我使用await语法testPromise(10)先运行然后for循环代码运行如果我不使用await,testPromise(10)异步运行一切都很好但是,现在,如果 testPromise 遇到错误,我应该如何处理?有什么方法可以使用 async-await 结构并在 try-catch 结构中处理此错误?
我知道我可以使用 catch 函数 testPromise(10).catch(err =>{}); 来处理错误,但我想知道在我的第一级 try-catch 中是否有任何方法来处理它
【问题讨论】:
-
Can I fire and forget a promise 的可能重复项?
-
所以你不希望循环等待,但你希望
try块等待它完成?
标签: javascript async-await es6-promise ecmascript-2017