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的代码出错了,程序不会退出脚本,终止运行,后续将继续完善。
  • 相关阅读:
    函数指针
    动态内存
    char*和char[]的区别
    C语言基本数据类型大小
    html5新特性localStorage和sessionStorage
    Swoole实现h5版聊天室笔记
    php使用mysql之sql注入(功)
    Http协议工作特点和工作原理笔记
    原生js使用ajax
    php常用的几个预定义变量
  • 原文地址:https://www.cnblogs.com/caoshufang/p/10814941.html
Copyright © 2011-2022 走看看