zoukankan      html  css  js  c++  java
  • ES6 Promise多步骤操作

    Promise 解决es5中的回调地狱
     
    什么是回调地狱?
    function a() {
      进行业务逻辑操作
      function b() {
        进行业务逻辑操作
        function c() {
          进行业务逻辑操作
        }
      }
    }
    这就是回调地狱。。。。。。
     
    Promise
    let state = 1
    function state1(resolve, reject) {
      console.log('start');
    if (state == 1) {
      resolve('start 成功')
    } else {
      reject('start 错误')
      }
    }
    function state2(resolve, reject) {
      console.log('next');
      if (state == 1) {
        resolve('next 成功')
      } else {
        reject('next 错误')
      }
    }
    function state3(resolve, reject) {
      console.log('end');
      if (state == 1) {
        resolve('end 成功')
      } else {
        reject('end 错误')
      }
    }
    new Promise(state1).then(function (val) {
      console.log(val); // val是返回值
      return new Promise(state2)
    }).then(function (val) {
      console.log(val); // val是返回值
      return new Promise(state3)
    }).then(function (val) {
      console.log(val); // val是返回值
    })
     
    .all()方法 在state1,state2执行完之后 ,然后再执行state3
    Promise.all( [ new Promise(state1) , new Promise(state2) ] ).then (state3)

    .race()方法 在state1,state2任意一个执行完之后 ,然后再执行state3
    Promise.all( [ new Promise(state1) , new Promise(state2) ] ).then (state3)
  • 相关阅读:
    git 远程仓库的使用
    git 以及 工作区 版本库 暂存区
    git repo gerrit 的关系
    【转】c# delegate
    【转】分析.net中的object sender与EventArgs e
    如果plsql连接没问题,但程序中报ORA-12504的错误
    【转】C# String 与 Char[] 数组 相互转换
    【转】C#日期时间格式化
    PLSQL导出语句的查询结果
    oracle取order by的第一条数据
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10859315.html
Copyright © 2011-2022 走看看