每次調用一個函數自動加 1promise
count() 1 count() 2 count() 3
var count = (function () { var a = 0 return function () { console.log(++a) } })() count() // 1 count() // 2 count() // 3
好比 sleep(1000)表明等待 1000msasync
方法一:ES5 方式實現
function sleep(callback, time) { if (typeof callback == 'function') { setTimeout(callback, time) } } function output() { console.log(111) } sleep(output, 2000)
方法二:使用 promise 方式
const sleep = (time) => { return new Promise((resolve) => { setTimeout(resolve, time) }) } sleep(2000).then(() => { console.log(111) })
方法三:利用 async
function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms) }) } async function init() { var temp = await sleep(2000) console.log(111) //2s後執行 } init()