Muh*_*fil 9 asynchronous node.js promise async-await
我知道这setTimeout是一个异步运行的 API,我想同步运行它。使用async/await如下所示应该bla bla首先打印,但我bla先打印。
async function testing(){
console.log("testing function has been triggered");
await setTimeout(function () {
console.log("bla bla")
}, 4200)
console.log("bla");
}
Run Code Online (Sandbox Code Playgroud)
You*_*saf 13
setTimeout不返回 a Promise,所以你不能await这样做。
您可以包装setTimeout一个函数,该函数返回 a ,Promise一旦计时器到期,该函数就会被满足。你可以使用await这个包装函数。
function createCustomTimeout(seconds) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('bla bla');
resolve();
}, seconds * 1000);
});
}
async function testing() {
console.log('testing function has been triggered');
await createCustomTimeout(4);
console.log('bla');
}
testing();Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11830 次 |
| 最近记录: |