var r = await ProFn() // ProFn是一个返回Promise对象的函数
它返回的是原本应该传给resolve函数的值,
那怎么获取原本应该传给reject函数的值呢?
var r = await ProFn() // ProFn是一个返回Promise对象的函数
它返回的是原本应该传给resolve函数的值,
那怎么获取原本应该传给reject函数的值呢?
如果你返回的是一个promise对象的话 可以直接在后边.then() 或者.catch()
你也可以用try catch ,道理大同小异,但是更推荐后边跟.catch() 因为这样的话我感觉更方便阅读一些
在项目里边如果是统一的操作可以把catch封装一下,避免代码冗余
它会把 reject 的值作为异常抛出来。
参见: https://developer.mozilla.org...
If the Promise is rejected, the await expression throws the rejected value.
结论:两种建议的处理方式
try...catch()
catch()
回答参考官方文档: await - JavaScript | MDN
如果
Promise
被拒绝,则抛出拒绝的原因。async function f4() { try { const z = await Promise.reject(30); } catch (e) { console.error(e); // 30 } } f4();
你可以链式调用
catch()
(而不是使用try
)以在等待 promise 兑现之前处理被拒绝的 promise。const response = await promisedFunction().catch((err) => { console.error(err); return "default response"; }); // response will be "default response" if the promise is rejected
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
var response = await promisedFunction().catch((err) => { console.log(err); });