Backbone Javascript:等待一个函数完成后再运行另一个函数
Backbone Javascript: Wait for a function to finish before running another one
我是Javascript的新手,在阅读了几个例子后,我仍然无法做到这一点。我知道我需要使用回调,但我的代码不起作用。以下是我尝试的
$(this.el).html(this.template(), {
success: function() {
return this.collection.each(this.appendEntry);
}
});
success
甚至从未被称为
好吧,如果你想在异步任务完成时做一些事情,你可以使用promise。例如jQuery
:
$.when( myAsyncTask() )
.then(function(){
console.log("Executed when myAsyncTask() is done..");
});
如果您只想在成功提取Collection数据时执行某些操作,请使用Backbone.Collection.fetch()
的success()
回调方法
myCollection.fetch({
success: function(data){
console.log("Your Collection data is available now.");
}
});
$(this.el).html()
(或者更简洁地说,this.$el.html()
)是一个同步函数调用。在该函数完成之前,不会执行其他Javascript代码。
this.$el.html(this.template());
this.collection.each(this.appendEntry);
将按顺序执行这两个语句。
您是否碰巧以某种方式重写了Undercore template()
函数,在这种情况下this.template()
已经变成了异步调用?如果是这样,您需要向模板代码添加回调支持,并将html()
的执行推迟到它完成。
相关文章:
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- 多次调用另一个javascript函数中的javascript函数
- 使用JS函数来使用另一个函数的语法?node.js
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- 另一个Ajax函数触发的Ajax函数不起作用
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- 从另一个函数获得$this值
- 如何记录调用另一个函数的函数的返回值
- 它在另一个函数中嵌套后不会输出文本
- 如何将自动完成的值传递到另一个函数中
- 将一个函数作为参数传递给javascript中的另一个函数
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- 从另一个函数延迟解析的返回
- 多次调用promise函数,直到另一个promise函数满足条件