[英]Javascript wait for variable
我有一個初始化的服務變量:
service = new google.gdata.calendar.CalendarService('timeless');
這發生在回調函數中。 我的問題是我有其他依賴服務變量的函數。 如果我過早地調用它們,則變量未定義且腳本不執行任何操作。
主要問題是用戶是否會嘗試單擊調用其中一個功能的按鈕。 如何讓功能等待? 如果我使用cutsom自旋鎖,將會殺死瀏覽器。
我需要某種偽互斥或等待/休眠功能。 我不認為setTimeout會有所幫助。
謝謝。
這樣的事情怎么樣?
$(initservice);
function initOtherSTuff(){
//init other stuff
}
function initService(initCalled){
if(!initCalled){
service = new google.gdata.calendar.CalendarService('timeless');
}
else if(!service){
window.setTimeout(function(){initService(true);},500);
}
else{
initOtherStuff();
}
引入一個間接級別:不是讓onclick()代碼直接調用這樣的函數,而是將調用放在最初包含不執行任何操作的函數的變量上(或者可能顯示錯誤消息,或以其他方式處理條件),然后一旦初始化service
獲得分配給它的實際功能:
.
.
var indirection = { func1: function(){}, func2: function(){} }
.
.
<element onClick = "indirection.func1()"></element>
.
.
service = new google.gdata.calendar.CalendarService('timeless');
indirection.func1 = functionThatUsesService
.
.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.