队列异步功能和限制为1并行执行

时间:2018-02-04 15:51:47

标签: javascript node.js

我有一个异步的javascript函数,我们称之为switch。该函数在特定事件上被调用。 (例如按钮点击)。问题是,并行多次执行任务会使脚本内存不足。所以我想按顺序执行它。

default
generateThumbnail

快速按下按钮3次会产生输出

start 1
end 1
start 2
start 3
end 2
end 3

我想要的是

start 1
end 1
start 2
end 2
start 3
end 3

1 个答案:

答案 0 :(得分:2)

保持上次执行的承诺,并将每个新调用链接到该...

let promise = Promise.resolve();

function userPressesButton() {
    let arg = // ...
    promise = promise.then(() => generateThumbnail(arg));
    return promise;
}