zoukankan      html  css  js  c++  java
  • Promise.all()使用实例

    一、什么是Promise.all()?

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

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

    二、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; }); });

    其实写的不好,因为没有添加catch错误处理,promise会吃掉错误,假设前面的promise的代码出错了,程序不会退出脚本,终止运行,后续将继续完善。
  • 相关阅读:
    弗尤博客(二)
    弗尤博客(一)
    第一系列完
    C# 关闭子窗体释放子窗体对象问题
    C#设置IE代理
    C# 计算位置居中
    C# 绘图
    From传值
    pictureBox绑定Base64字符串
    C# 绘制圆角矩形
  • 原文地址:https://www.cnblogs.com/caoshufang/p/10814941.html
Copyright © 2011-2022 走看看