for(let i=0; i<10; i++) {
setTimeout(function(){
console.log(i)
}, 1000)
}
这段代码在node里面是运行不通的, 因为需要es7, 可以在浏览器里面运行
const sleep = time=>new Promise(resolve=>setTimeout(resolve,time));
这段代码简写的很严重, 我改成详版
const sleep = (time) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, time)
})
}
这样看的能清楚些
其实这些sleep函数真的没干么事, 方法如其名, 只是sleep了一段时间
其实await是有返回值的, 返回的是resolve的参数, 不信你试试这段代码
async function test() {
for (let i = 0; i < 10; i++) {
let t = await sleep(1000)
console.log(t, i)
}
}
相关分类