zoukankan      html  css  js  c++  java
  • 入门Promise的用法

    new Promise(function(resolve,reject){
    resolve();  //数据处理完成
    reject();   //数据处理出错
    }).then(function A(){
       //成功下一步
    },function B(){
       //出错做对应处理
    });
    Promise 三个状态;(每一个then都会返回新的一个Promise实例)
    pending  //待定 初始状态
    
    fulfilled  //实现 操作成功
    
    rejected  //否决 操作失败
    -----------------------------------------------------------------
    let a = 10;
    let promise = new Promise(function(resolve,reject){
      if(a==10){
        resolve("成功")
      }else{
       reject("失败")
      }
    
    })
    promise.then(res=>{
      console.log(res)
    },err=>{
      console.log(err)
    })
    
    promise.catch(err=>{
       console.log(err)
    })
    
    简写:
    new Promise((resolve,reject)=>{
       //做什么
    }).then(res=>{
       console.log(res)
    }).catch(err=>{
       console.log(err)
    })
    等价指令:
    Promise.resolve("xxx")将现有的东西转成一个promise对象;resolve成功状态;
    等价
    new Promise((resolve)=>{
       resolve("xxx")
    })
    Promise.reject("xxx")将现有的东西转成一个promise对象;reject失败状态;
    等价
    new Promise((resolve,reject)=>{
       reject("xxx")
    })
    -----------------------------------------------------------------
    Promise.all([x1,x2,x3])
    例子:
    let promise1 = Promise.resolve("aa")
    let promise2 = Promise.resolve("bb")
    let promise3 = Promise.resolve("cc")
    Promise.all([promise1,promise2,promise3]).then(res=>{
       console.log(res)  //[aa,bb,cc]
       let [res1,res2,res3] = res; //es6解构;
       console.log(res1,res2,res3)
    }).catch(err=>{
       console.log(err)
    })
    all必须确保所有promise对象都是resolve状态;
    let promise1 = Promise.reject("aa")
    let promise2 = Promise.reject("bb")
    let promise3 = Promise.resolve("cc")
    Promise.race([promise1,promise2,promise3])只要有一个成功的就返回;//一般也不会用到
  • 相关阅读:
    基于发布/订阅模型的应用程序的主循环设计
    C++使用继承时子对象的内存布局
    安装 CentOS 后的系统配置及软件安装备忘
    环形无锁队列
    并发编程基础
    线程池实现
    Git远程操作
    Unix权限管理
    jquery中,某些写法后来更新导致版本不支持的替代方法
    js相关
  • 原文地址:https://www.cnblogs.com/lhl66/p/8710287.html
Copyright © 2011-2022 走看看