-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
使用Promise实现Sleep
// Promise
const sleepPromise = delay => {
console.log('Promise sleep start');
return new Promise(resolve => setTimeout(resolve, delay));
}
sleepPromise(1000).then(res => {console.log('Promise sleep end')});使用Generator函数实现Sleep
// Generator
function *sleepGenerator(delay) {
console.log('Generator sleep start')
yield new Promise((resolve, reject) => {
setTimeout(resolve, delay);
})
}
sleepGenerator(3000).next().value.then(res => {
console.log('Generaotr sleep end');
})使用Async/Await实现Sleep
// a
async function sleepAsync(delay) {
console.log('async sleep start')
return await new Promise((resolve, reject) => {
setTimeout(resolve,delay);
})
}
sleepAsync(5000).then(res => {console.log('async sleep end')})ES5回调实现Sleep
function sleep(time, callback) {
console.log('sleep start')
if (typeof callback !== 'function') {
setTimeout(() => {console.log(callback)}, time);
} else {
setTimeout(callback, time);
}
}
function output () {
console.log('sleep finish');
}
var value = 123;
sleep(7000, output);
sleep(8000, value);