Authored by 姜枫

Update code-security.md

... ... @@ -107,6 +107,30 @@
_.forEach(data.list, console.log);
```
# 代码容错性
**原则:** 在接口数据返回失败或者错误的情况下,尽量保证页面正常打开,有问题的地方可以不显示内容。
1. 在使用 **Promise.all** 并行请求多个接口时,如果其中一个失败,那么整个Promise.all都返回失败
在一些情况下,比如商品详情页请求了6-7个接口,其中有的数据没有访问,对页面并不会有太大影响,更不会影响整个购物流程,那么对失败的接口,我们给一个默认值
> Since yoho-node-lib@0.0.48
```
const safePromise = global.yoho.safePromise;
let promises = [ promise1, promise2, promise3 ...];
Promise.all(safePromise(promises)).then(result => {
let data2 = result[1] || {}; // 当promise2接口调用失败, data2 默认为 undefined
if (!result[2]) { // 如果某一个接口的数据是必须的,可以自己判断抛出异常
throw new Error('some data must get');
}
});
```
... ...