第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

等到flag = true

等到flag = true

桃花長相依 2019-12-27 10:41:36
我有這樣的javascript函數(shù):function myFunction(number) {    var x=number;    ...    ... more initializations    //here need to wait until flag==true    while(flag==false)    {}    ...    ... do something}問題是javascript卡在了一段時間,卡住了我的程序。所以我的問題是我如何才能在函數(shù)中間等待直到標志為真而不需要“忙等待”?
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

Javascript是單線程的,因此頁面阻塞行為。您可以使用其他人建議的延期/承諾方法,但是最基本的方法是使用window.setTimeout。例如


function checkFlag() {

    if(flag == false) {

       window.setTimeout(checkFlag, 100); /* this checks the flag every 100 milliseconds*/

    } else {

      /* do something*/

    }

}

checkFlag();

這是一個很好的教程,帶有進一步的說明:教程


編輯


正如其他人指出的那樣,最好的方法是重新組織代碼以使用回調(diào)。但是,此答案應(yīng)該使您了解如何使用來“模擬”異步行為window.setTimeout。


查看完整回答
反對 回復(fù) 2019-12-27
?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

function waitFor(condition, callback) {

    if(!condition()) {

        console.log('waiting');

        window.setTimeout(waitFor.bind(null, condition, callback), 100); /* this checks the flag every 100 milliseconds*/

    } else {

        console.log('done');

        callback();

    }

}

采用:


waitFor(() => window.waitForMe, () => console.log('got you'))


查看完整回答
反對 回復(fù) 2019-12-27
  • 3 回答
  • 0 關(guān)注
  • 487 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號