javascript - 如何动态添加函数到队列中?

标签 javascript angularjs queue promise

我有 render(value) 函数,我使用不同的参数多次调用该函数。我需要链接对此函数的调用,以便它仅在前一个调用完成后才开始执行。

我需要链接的函数返回一个 promise :

function render(value){
   var deferred = $q.defer();

   /* Some logic here */

   return deferred.promise;
}

我应该在这里放置什么?

function onClick(value){
   /*
       Add render(value) to the queue. And start execution if queue is empty
   */
}

最佳答案

这只是然后链接 -

创建队列:

var queue = $q.when(); 

添加要在队列上运行的函数:

queue = queue.then(function(){ // need to reassign since promises are immutable.
    console.log("Added!");
});

因此,在您的示例中:

function onClick(value){
  queue = queue.then(function(){ return render(value); });
}

关于javascript - 如何动态添加函数到队列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670196/

相关文章:

javascript - 在 Backbone 中删除嵌套 View 的有效方法

javascript - 如何更新 Mongo 文档数组内的对象(在特定索引处)

javascript - 安装 MEAN 堆栈时出现问题

asynchronous - swift 3 : Why is OS_dispatch_queue_serial the default queue?

algorithm - 如何对 2 个未排序列表进行排序并创建一个排序列表?

javascript - 使用 dojo.xhrPost 发布 JSON 字符串

javascript - Angular js中的搜索过滤器

javascript - 如何正确解析 bs-typeahead 的 javascript promise

php - 什么会阻止队列中的作业处理? [PHP/拉拉维尔 5]

javascript - 如何在不更改标记的情况下隐藏 AngularJS 中的内容