一、什么是Promise.all()?

  在说这个之前要先说清楚promise。promise就是一个对象,专门用来处理异步操作的。

Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

二、Promise.all()有什么用?

  现在有一个需求,要你用node写个上传多张壁纸的接口,这时候就可以用Promise.all()了。

因为你需要发起多个传到数据库的请求,如果有一个没有传成功,都算失败。

三、怎么使用?

  这里只说我在工作中用的比较多的Promise.all()   具体更多可以参考阮一峰大神的es6入门 http://es6.ruanyifeng.com/#docs/promise#Promise-all

  router.post('/addWallpaper', async (req, res, next) => { let promises = []; await req.body.wallpaper.forEach(async function (i) { // 获取传来的数据
      let wallpaper = i[0]; // 默认未上线
      let status = 0; let dataArr = { // 传入后台的数据
 wallpaper, status }; let checkAndAdd = async function (dataArr) { // do something
 } // 新增
    //do something
// 获取所有判断结果 promises.push( checkAndAdd(dataArr).catch(err => { console.error(err); return null; }) ); }); let resArr = await Promise.all(promises); let resS = resArr.filter((res) => { return res != null && res.code === 0; }); });

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄