是否有任何现有的api /代码用于处理和链接长时间运行" async" javascript函数?
首先,我不认为js中有任何asynch函数这样的东西吗?我想唯一的asynch api是jQuery使用的http请求,还是我错了?
无论如何,当使用jQuery首先例如ping一个服务器,然后登录,然后加载一堆项目等,如果你知道我的话,将这些函数包装在彼此完成的处理程序中并不是很漂亮的意思。
我现在所做的是定义一个具有某种链表功能的Task-class,带有task.next-property等。当我链接这些并在第一次执行task.run时,我设计了它这样就可以运行每个任务,并在调用完成处理程序时运行task.next任务等。
这种方法很好,但是我想知道是否有任何现有的更完整的api用于我已经应用的那个?
也许支持取消,进度,异常聚合等?
也许有类似异步/等待任务的计划,就像在C#中现在一样,但在js中?
答案 0 :(得分:0)
如果您正在使用浏览器,则可以使用setTimeout ..并将代码分解为函数,每次迭代从堆栈/队列中取出一个,然后执行该部分..还有Web worker ... < / p>
如果您正在使用服务器端JS(例如NodeJS),那么有些库可以使异步任务更容易管理。在浏览器中它需要工作......你基本上想要创建一组任务,然后工作..
function processBundle(tasks, callback) {
var hnd = setTimeout(doWork, 20);
function doWork() {
var item = tasks.shift();
item();
return (
tasks.length
? setTimeout(doWork, 20)
: callback()
);
}
}
//using it...
var items = [];
items.push(simpleFunction1);
...
items.push(simpleFunctionN);
processBundle(items, function(){
alert("done!");
});