函数封装 func.js
// 捕获 await 的错误
export const to = (promise, errorExt, ) => {
return promise
//成功,则error返回null,result返回data
.then((data) => [null, data])
//错误则捕获错误内容,然后返回错误信息,result为undefined
.catch((err) => {
if (errorExt) {
const parsedError = Object.assign({}, err, errorExt);
return [parsedError, undefined];
}
return [err, undefined];
});
}
使用
import { to } from './func.js'
//进行错误捕获和处理 handleFetch 为请求接口的 promise
const [err, res] = await to(handleFetch());
if (err) {
//对错误进行处理
return
}
实战范例
const [err, res] = await to(db.collection('stock').add(params))
if (err) {
uni.showToast({
title: '新增失败!',
icon: 'fail'
});
return
}
if (res.result.errCode === 0) {
uni.showToast({
title: '新增成功!'
});
}