成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

javascript中sleep的使用方法

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)javascript中sleep的使用方法,以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了羅甸免費(fèi)建站歡迎大家使用!

很多編程語言里都有sleep()delay()等方法,它能讓我們的程序不那么著急的去執(zhí)行下一步操作,而是延遲、等待一段時間。軟件開發(fā)中經(jīng)常會遇到需要這樣的函數(shù),比如等待幾分鐘去檢查某一事件是否發(fā)生。JavaScript里有setTimeout()方法來實(shí)現(xiàn)設(shè)定一段時間后執(zhí)行某個任務(wù),但寫法很丑陋,需要提供回調(diào)函數(shù):

setTimeout(function(){ alert("Hello"); }, 3000);

JavaScript Promise API是新出現(xiàn)了一個API,借助 Promise,我們可以對setTimeout函數(shù)進(jìn)行改良,下面就是把setTimeout()封裝成一個返回Promise的sleep()函數(shù)。

// https://zeit.co/blog/async-and-await
function sleep (time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

// 用法
sleep(500).then(() => {
    // 這里寫sleep之后需要去做的事情
})

你會發(fā)現(xiàn),這種寫法很優(yōu)雅,很像其它編程語言里的延遲、等待函數(shù)。Promise API使我們避免傳入回調(diào)函數(shù),我們在實(shí)現(xiàn)中還使用了ES6中的箭頭(arrow)函數(shù)。

這里需要提到的一個問題是,這個sleep()在執(zhí)行的時候是“block”程序的繼續(xù)執(zhí)行的。它不是同步的。如果想讓它同步執(zhí)行,不妨礙執(zhí)行之后的代碼,我們可以使用 async/await 關(guān)鍵字。

(async function() {
  console.log('Do some thing, ' + new Date());
  await sleep(3000);
  console.log('Do other things, ' + new Date());
})();

執(zhí)行結(jié)果:

Do some thing, Mon Feb 23 2015 21:52:11 GMT+0800 (CST)  
Do other things, Mon Feb 23 2015 21:52:14 GMT+0800 (CST)

你會發(fā)現(xiàn),這一次,sleep()并沒有阻礙第二個console的執(zhí)行。

async/await 是ES7中的語法,目前還是處于試驗(yàn)階段。那現(xiàn)在想用這個 async/await 特性怎么辦?可以嘗試 google 的一個 JavaScript 預(yù)編譯器 traceur,可以將高版本的 JavaScript 編譯為 ES5 代碼,已經(jīng)實(shí)驗(yàn)性的支持了 async/await (需要使用 –experimental 來指定開啟)。

上文描述的就是javascript中sleep的使用方法,具體使用情況還需要大家自己動手實(shí)驗(yàn)使用過才能領(lǐng)會。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前名稱:javascript中sleep的使用方法
轉(zhuǎn)載注明:http://jinyejixie.com/article8/ggggop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、品牌網(wǎng)站設(shè)計、電子商務(wù)網(wǎng)站策劃、網(wǎng)站制作、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
五华县| 花垣县| 长乐市| 汤原县| 绥棱县| 沅陵县| 阿合奇县| 广宁县| 崇文区| 正阳县| 昭觉县| 玛曲县| 江阴市| 广昌县| 赤峰市| 文成县| 霍林郭勒市| 英山县| 汨罗市| 平阴县| 邮箱| 绵阳市| 始兴县| 扎赉特旗| 图们市| 永年县| 扎赉特旗| 聂拉木县| 扶风县| 洞头县| 东莞市| 吕梁市| 揭西县| 侯马市| 台州市| 阿尔山市| 家居| 天全县| 锡林浩特市| 健康| 静安区|