JavaScript中的队列-如何调用下一个函数
我想写一个可以在我的应用程序中反复使用的队列。我知道队列存在,但我: a) 我想试试这个吗 b) 想要完全控制代码吗 c) 我不想要一个图书馆来完成我认为看似简单的任务 到目前为止,我有一个数组来保存要处理的函数,我使用shift()和push()来管理数组内容 这是伟大的工作,除了我不希望我的队列自动处理下一个函数的所有时间。由于此队列可用于执行顺序非常重要的各种进程,因此我需要一种方法,仅在第一个函数完成时处理下一个函数。问题是我不知道“完成”的定义。我自己使用的一个例子是,假设一个用户将5张照片上传到我的应用程序,在上传下一张图像之前,用户需要单击一个按钮“确定”图像预览。当我想自动处理下一个函数时,我还想使用相同的队列 到目前为止,我有以下几点:JavaScript中的队列-如何调用下一个函数,javascript,function,events,queue,Javascript,Function,Events,Queue,我想写一个可以在我的应用程序中反复使用的队列。我知道队列存在,但我: a) 我想试试这个吗 b) 想要完全控制代码吗 c) 我不想要一个图书馆来完成我认为看似简单的任务 到目前为止,我有一个数组来保存要处理的函数,我使用shift()和push()来管理数组内容 这是伟大的工作,除了我不希望我的队列自动处理下一个函数的所有时间。由于此队列可用于执行顺序非常重要的各种进程,因此我需要一种方法,仅在第一个函数完成时处理下一个函数。问题是我不知道“完成”的定义。我自己使用的一个例子是,假设一个用户将5
我不会说这是一项看似简单的任务。它可能变得非常复杂,这取决于你想要实现什么。不管怎样,我认为你在寻找类似于承诺体系的东西,不是吗?以某种方式控制流程的生命状态,以便您可以同步执行,对吗?我不会说这是一项看似简单的任务。它可能变得非常复杂,这取决于你想要实现什么。不管怎样,我认为你在寻找类似于承诺体系的东西,不是吗?以某种方式控制进程的生命状态,以便同步执行,对吗?
var q = [],
processing;
function runNextFunction() {
while (q.length) {
if(!processing){
processing = true;
q.shift()();
}
processing = false;
}
};
function fillQueue(func) {
q.push(func);
runNextFunction();
};