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-工具代码
    idea-常用快捷键
    idea-环境配置
    mysql-常用命令
    Java IO流学习总结
    Java类加载机制
    Struts2标签 %{ } %{# }详解
    EL语法
    SQL语句
    在servlet转向jsp页面的路径问题
  • 原文地址:https://www.cnblogs.com/polk6/p/14810475.html
Copyright © 2011-2022 走看看