簡體   English   中英

Javascript等待變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM