service层解藕(Promise化)
为了将service层解藕,我对项目进行了如下改造
将所有的方法的返回修改为
promise
如果服务成功,返回resolve, 如果服务失败,返回reject
可以直接使用静态方法
1
2return Promise.resolve(msg)
return Promise.reject(msg)
方法间使用
async/await
统一错误格式
因为可以自己定义错误信息,自由度高, 有的时候返回的错误是一个Error对象,有的时候可能是字符串
为了确保错误信息可以打印,可以进行判断
1 | res.json({ |
错误处理方法
单独的一个服务,可以直接在promise的reject处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14await service.functionA(param1,param2).then(
() => {
res.json({
result: 0,
msg: 'success!'
});
},
err => {
res.json({
result: 1,
err: err && err.message ? err.message : err
});
}
);如果服务太多,可以统一使用try/catch
1
2
3
4
5
6try{
await serviceA;
await serviceB;
}catch(err){
console.log(err)
}