zoukankan      html  css  js  c++  java
  • vue.js/ES6 Promise

    Promise主要是为了解决异步请求。
    语法:new Promise((resolve,reject)=>{
    resolve();//成功 then()
    reject();//失败 catch()
    }).then(()=>{
    //成功后的处理
    }).catch(()=>{
    //失败后的处理
    });//resolve,reject 本身也是函数
    注:then和catch都可以接收参数
    无参数
    new Promise((resolve,reject)=>{
    //这里可以写逻辑
    resolve();//完成后调用 resolve,就会跑到then里面,可以有参数,会传到then里面
    }).then(()=>{
    //自己编写后续逻辑
    });

    有参数
    new Promise((resolve,reject)=>{
    //这里可以写逻辑
    var para = {name:'jay'};
    resolve(para);//完成后调用 resolve,para会传到then里面就是obj
    }).then((obj)=>{
    var name = obj.name;//这就是上面传的jay
    //自己编写后续逻辑
    });

    //不写catch,在then里面处理成功和失败
    new Promise((resolve,reject)=>{
    var para = {name:'jay'};
    resolve(para);
    reject('error message');
    }).then((obj)=>{
    var name = obj.name;
    },
    (error)=>{
    //error 就是 字符串 error message
    }
    );

    //分组处理
    new Promise((resolve,reject)=>{
    var para = {name:'jay'};
    resolve(para);
    }).then((obj)=>{
    var name = obj.name;
    return new Promise((resolve)=>{resolve(name+'xxxxxx');});//return Promise.resolve(name+'xxxxxx');//return Promise.reject('error message');//throw 'error from throw';
    }).then((obj)=>{
    var name = obj.name;//这个then里面处理的是上一个then里面return出来的结果
    }).catch((error)=>{
    //error 是 Promise.reject('error message');或者 throw 'error from throw'; 的结果
    });
    //分组处理 简写
    new Promise((resolve,reject)=>{
    var para = {name:'jay'};
    resolve(para);
    }).then((obj)=>{
    var name = obj.name;
    return name+'xxxxxx';
    }).then((obj)=>{
    var name = obj.name;//这个then里面处理的是上一个then里面return出来的结果
    });
    //Promise.all 等待所有请求结束后才调用then,then里面包含的是所有请求的结果集合。

    Promise.all([
            new Promise((resolve,reject)=>{resolve('1')}),
            new Promise((resolve,reject)=>{resolve('2')})
          ]).then((results)=>{
            console.log(results);//['1','2']
          });
  • 相关阅读:
    python 安装预编译库注意事项-pip
    Lucene 入门需要了解的东西
    PHPSTORM 与 Xdebug 配合调试
    Windows 下命令行修改文件夹的控制权限 Cacls
    PHP 解压zip文件的函数封装
    PHP 关于回调的用法
    CentOS7 安装 swoole
    CentOS7 安装 scala 2.11.1
    PHP 代码质量检测工具的安装与使用
    PHP 新建动态类的代码
  • 原文地址:https://www.cnblogs.com/xsj1989/p/13963668.html
Copyright © 2011-2022 走看看