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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JavaScript中的睡眠-動(dòng)作之間的延遲

JavaScript中的睡眠-動(dòng)作之間的延遲

狐的傳說(shuō) 2019-06-17 17:39:41
JavaScript中的睡眠-動(dòng)作之間的延遲在JavaScript執(zhí)行另一個(gè)操作之前,有什么方法可以讓我在JavaScript中睡覺(jué)嗎?例子: var a = 1+3;  // Sleep 3 seconds before the next action here  var b = a + 4;
查看完整描述

3 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

萬(wàn)一你真的需要sleep()只是為了測(cè)試一些東西。但是請(qǐng)注意,在調(diào)試過(guò)程中,它大多數(shù)情況下都會(huì)使瀏覽器崩潰-這可能就是您需要它的原因。在生產(chǎn)模式中,我將注釋掉這個(gè)函數(shù)。

function pauseBrowser(millis) {
    var date = Date.now();
    var curDate = null;
    do {
        curDate = Date.now();
    } while (curDate-date < millis);}

不要用new Date()在循環(huán)中,除非您想浪費(fèi)內(nèi)存、處理能力、電池以及可能的設(shè)備壽命。


查看完整回答
反對(duì) 回復(fù) 2019-06-17
?
尚方寶劍之說(shuō)

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

ECMAScript 6版本,使用用于“代碼阻塞”的生成器:


因?yàn)樽畛醯膯?wèn)題是七年前發(fā)布的,所以我沒(méi)有費(fèi)心回答確切的代碼,因?yàn)樗?jiǎn)單了,而且已經(jīng)回答了。這將有助于解決更復(fù)雜的問(wèn)題,例如,如果您至少需要兩次睡眠,或者您計(jì)劃對(duì)異步執(zhí)行進(jìn)行排序。請(qǐng)隨意修改它以滿(mǎn)足您的需要。


let sleeptime = 100

function* clock()

{

    let i = 0

    while( i <= 10000 )

    {

        i++

        console.log(i); // actually, just do stuff you wanna do.

        setTimeout(

            ()=>

            {

                clk.next()

            }

            , sleeptime

        )

        yield

    }

}


let clk = clock()

clk.next()

職能*

()=>箭頭函數(shù)

您還可以通過(guò)承諾:

function sleep(ms)

{

    return(

        new Promise(function(resolve, reject)

        {

            setTimeout(function() { resolve(); }, ms);

        })

    );

}



sleep(1000).then(function()

{

    console.log('1')

    sleep(1000).then(function()

    {

        console.log('2')

    })

})

或者簡(jiǎn)單得多,也不那么花哨。


function sleep(ms, f)

{

    return(

        setTimeout(f, ms)

    )

}



sleep(500, function()

{

    console.log('1')

    sleep(500, function()

    {

        console.log('2')

    })

})

console.log('Event chain launched')

如果你只是在等待某種情況的發(fā)生,你可以這樣等待


function waitTill(condition, thenDo)

{

    if (eval(condition))

    {

        thenDo()

        return

    }


    setTimeout(

        ()    =>

        {

            waitTill(condition, thenDo)

        }

        ,

        1

    )

}


x=0


waitTill(

    'x>2 || x==1'

    ,

    ()    =>

    {

        console.log("Conditions met!")

    }

)


// Simulating the change

setTimeout(

    () =>

    {

        x = 1

    }

    ,

    1000

)


查看完整回答
反對(duì) 回復(fù) 2019-06-17
  • 3 回答
  • 0 關(guān)注
  • 718 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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