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)
  • 相关阅读:
    Hbase­优化方案
    ssh 登录
    微软2017校招笔试题3 registration day
    微软2017校招笔试题2 composition
    STL中的查找算法
    leetcode-188 买卖股票4
    leetcode-306 Additive Number
    网络安全(3): 数据完整性校验
    网络安全(2)-数据加解密
    linux共享库
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10859315.html
Copyright © 2011-2022 走看看