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

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)營
济阳县| 浦北县| 安多县| 舞阳县| 阿图什市| 肥城市| 奉新县| 阳信县| 广水市| 鸡东县| 汉川市| 内丘县| 纳雍县| 如皋市| 曲麻莱县| 江陵县| 丹阳市| 凤翔县| 兴和县| 内江市| 闽清县| 南充市| 永安市| 长寿区| 兴海县| 吉木萨尔县| 烟台市| 德安县| 南城县| 临安市| 崇明县| 三河市| 漾濞| 迭部县| 临西县| 陕西省| 青海省| 钟祥市| 龙海市| 萨迦县| 山东省|