zoukankan      html  css  js  c++  java
  • Promise 异步函数顺序执行

    可以满足需求,且使用方法和Promise.all统一

    var a = function() {
        return new Promise(function(resolve, reject) {
            setTimeout(function() {
                console.log('a')
                resolve('a')
            }, 1000)
        })
    }
    
    var b = function(data) {
        return new Promise(function(resolve, reject) {
            console.log('b')
            resolve(data +'b')
        })
    }
    
    var c = function(data) {
        return new Promise(function(resolve, reject) {
            setTimeout(function() {
                console.log('c')
                resolve(data +'c')
            }, 500)
        })
    }
    
    // 组织函数队列
    function reduce(arr) {
        var sequence = Promise.resolve()
    
        arr.forEach(function(item) {
            sequence = sequence.then(item)
        })
    
        return sequence
    }
    
    // 顺序执行函数队列
    reduce([a, b, c])
    .then(function(data) {
        console.log(data)// abc
    })
    .catch(function(e) {
        console.log(e)
    })
    

      

  • 相关阅读:
    emacs command
    emacs format
    attach
    虚拟ip
    emacs redo
    mariadb
    unsafe
    select, poll, epoll
    03基于python玩转人工智能最火框架之TensorFlow介绍
    03SQL语句
  • 原文地址:https://www.cnblogs.com/rusr/p/8488483.html
Copyright © 2011-2022 走看看