function sleep(delay) { var start = (new Date()).getTime(); while ((new Date()).getTime() - start < delay) { continue; } } function test() { console.log('111'); sleep(2000); console.log('222'); } test()
方法二:定时器
function sleep1(ms, callback) { setTimeout(callback, ms) } //sleep 1s sleep1(1000, () => { console.log(1000) })
方法三:es6异步处理
const sleep = time => { return new Promise(resolve => setTimeout(resolve,time) ) } sleep(1000).then(()=>{ console.log(1) })
方法四:yield后面是一个生成器 generator
function sleepGenerator(time) { yield new Promise(function(resolve,reject){ setTimeout(resolve,time); }) } sleepGenerator(1000).next().value.then(()=>{console.log(1)})
方法五:es7---- async/await是基于Promise的,是进一步的一种优化
function sleep(time) { return new Promise(resolve => setTimeout(resolve,time) ) } async function output() { let out = await sleep(1000); console.log(1); return out; } output();
注意点:
参考文献:Javascript中的async await
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205839.html原文链接:https://javaforall.net
