0
我正在使用Backbone.js,並且處於一個條件,我的主要函數調用this.search.searchGoogle(searchTerm)
觸發了其他函數調用。但是,在我的主要函數調用之後的下一行是另一個函數調用,this.search.cleanView
,。問題是有時在主函數完成之前調用第二個調用。如何在第一個函數完成後觸發函數調用
addNewPlace: function(e) {
var searchTerm = this.$el.find("input").val();
var poi = new vrboPoi({
title: searchTerm,
lat: this.options.vrbo_place.lat,
lng: this.options.vrbo_place.lng
});
var target = $(e.target),
index = target.closest("ul.pois").children().index(target.parent())
this.search = new match({
model: poi
});
this.search.render();
this.search.searchGoogle(searchTerm);
this.search.bind("place:selected", this.placeSelected, this);
// setTimeout(
// this.search.cleanView, 500
// );
e.preventDefault();
}
有沒有辦法來防止調用,直到this.search.searchGoogle(searchTerm)
this.search.cleanView
完成?
另一種選擇是使用jQuery的promise/Deferred對象。 [鏈接](http://api.jquery.com/category/deferred-object/) – fiskers7 2013-03-27 16:30:26