js promise 中使用 setTimeout 實現暫停執行的效果
在使用 promise 時,需要使用 setTimeout 來進行延時執行
對 promise 還不太熟悉的同學可能第一時間想到的是這樣的寫法
如:
run(); async function run() { console.log('1'); // 等待兩秒之後執行 setTimeout(() => { const data = await getData(); console.log(data); }, 200); } function getData() { return new Promise((resolve, reject) => { resolve("200"); }) }
這樣寫 await 就報錯瞭
想要實現延時效果,我們這裡先封裝個sleep
function x_sleep(time) { return new Promise(resovle => { setTimeout(() => { resolve(); }, time) }) }
此時就可以通過我們的 sleep函數去進行延時處理瞭
完整代碼:
run(); async function run() { console.log("1"); // 停止2秒 await x_sleep(2000); const data = await getData(); console.log(data); } function getData() { return new Promise((resolve, reject) => { resolve("200"); }) } function x_sleep(time) { return new Promise(resolve => { setTimeout(() => { resolve(); }, time) }) }
到此這篇關於js promise 中使用 setTimeout 實現暫停執行 的文章就介紹到這瞭,更多相關js使用 setTimeout 實現暫停執行 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Nodejs新特性async和await的使用詳解
- vue中Promise的使用方法詳情
- Vue中的同步調用和異步調用方式
- JavsScript中Promise的錯誤捕獲詳解
- JS時間分片技術解決長任務導致的頁面卡頓