一、題目
題目:實現(xiàn)一個函數(shù)sleep疾棵,先輸出A戈钢,1秒之后輸出B,有什么方案嗎是尔?
二殉了、代碼實現(xiàn)
思路:
- 方法一:通過Promise實現(xiàn)
- 方法二:async/await
- 方法三:從Generator配合yield進行實現(xiàn)
方法一;通過Promise實現(xiàn)
console.log("A");
function sleep(time) {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, time);
});
}
sleep(1000).then(() => {
console.log("B");
});
方法二:async/await
console.log("A");
function sleep2(time) {
return new Promise((reslove, reject) => {
setTimeout(() => {
reslove();
}, time);
}).then(() => {
console.log("B");
});
}
async function sleepAsync() {
await sleep2(1000);
}
sleepAsync();
方法三:從Generator配合yield進行實現(xiàn)
console.log("A");
const sleep = ((time)=>{
return new Promise((resolive)=>{
setTimeout(()=>{
resolve();
},time)
})
})
function* sleepGenerator(time){
yeild sleep(time);
}
sleepGenerator(1000).next().value.then(()=>{
console.log("B");
})