zoukankan      html  css  js  c++  java
  • JavaScript Promise的串行执行

    1. 介绍

    在web实际开发中,也许会用到多个异步操作按顺序执行完成。比如有5个ajax请求,希望前面一个ajax请求完成后,再执行后面一个请求,5个ajax依次请求完成。

    2. Promise执行链

    说明:使用Array.reduce()方法,让多个Promise函数依次执行。

    示例

    let p1 = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => { console.log('one'); resolve() }, 1400);
      })
    };
    let p2 = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => { console.log('two'); resolve() }, 1300);
      })
    };
    
    let p3 = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => { console.log('three'); resolve() }, 1200);
      })
    };
    let p4 = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => { console.log('four'); resolve() }, 1100);
      })
    };
    
    // reduce 依次执行
    [p1, p2, p3, p4].reduce((p, fn) => { return p.then(fn) }, Promise.resolve());
    

    输出结果

  • 相关阅读:
    java 编码问题
    关于时间
    页面
    关于微信
    01-jQuery的介绍
    15-BOM
    14-定时器
    13-JS中的面向对象
    12-关于DOM操作的相关案例
    购物车练习
  • 原文地址:https://www.cnblogs.com/polk6/p/14810475.html
Copyright © 2011-2022 走看看