async await 方法特别好用,但是遇到异常的时候,如果手动的一个一个try catch会是一个非常费时费力的方法,而且容易忘记,造成错误,这里总结了两种方法,来解决这一问题。
方法一: 自己封装
方法定义
function to(promise) {
if (!promise || !Promise.prototype.isPrototypeOf(promise)) {
return new Promise((resolve, reject) => {
reject(new Error('参数必须是 promise'));
}).catch((err) => {
return [err, null];
});
}
return promise.then(data => {
return [null, data];
}).catch(err => {
return [err, null];
});
}
如何使用
async function f() {
const [error, data] = await to(...);
if(error){
...
}
...
}
方法二: 第三方库
await-to-js
使用方法
import to from 'await-to-js';