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)
  • 相关阅读:
    0052 html5多媒体音频标签audio
    0051 HTML5概述、新增标签、简单案例
    0050 VSCode软件
    0048 :focus -- 获得焦点元素
    0046 CSS3过渡:transition
    Linux 中的常见锁及其基本原理
    小程序海报最佳实现思路,可视化编辑直接生成代码使用
    babel插件的相关知识
    vue-next 函数式 api
    小程序如何改变onLoad 的执行时机?
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10859315.html
Copyright © 2011-2022 走看看