javascript promise_flow.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript promise_flow.js相关的知识,希望对你有一定的参考价值。

/**
 * 按顺序执行Promise
 * @param {Array<(ret:Any,i:Number,brk:()=>)=>Promise>} tasks 
 * @param {Any} [init]
 * @returns {Promise}
 */
function flow(tasks, init) {
    return new Promise((resolve, reject) => {
        var i = 0;
		var ret = init;
		var brk = false;

        function next(data) {
            ret = data;
            i++;
            if (brk || i < tasks.length)
                tasks[i](ret, i).then(next, reject).catch(reject);
            else
                resolve(ret);
        }
        tasks[i](ret, i, ()=>brk=true).then(next, reject).catch(reject);
    });
};

以上是关于javascript promise_flow.js的主要内容,如果未能解决你的问题,请参考以下文章

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法

JavaScript

JavaScript