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)
  • 相关阅读:
    Canvas基础讲义
    封装一个DivTag
    递归深拷贝
    构造函数的执行过程
    封装一个Ajax工具函数
    数组去重
    [js开源组件开发]js多选日期控件
    自己写的表格插件autotable
    复杂表格的树形结构的添加删除行div实现
    自制html5塔防游戏
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10859315.html
Copyright © 2011-2022 走看看