【发布时间】:2018-08-13 14:28:53
【问题描述】:
我不知道如何将 while 循环中的异步等待功能转换为基于 Promise 的实现。
repl 显示异步等待版本
https://repl.it/repls/IdealisticPepperyCoding
var dependency = false;
function checkDependency() {
return new Promise(resolve => {
setTimeout(() => {
dependency = true;
return resolve();
}, 1000)
});
}
async function isReady() {
while(!dependency) {
console.log('not loaded');
await checkDependency();
}
console.log('loaded')
}
isReady();
【问题讨论】:
-
你试过什么没用
-
移除了异步等待并尝试了 checkDependency().then()
-
呃,async-await 是基于承诺的,所以我不确定你在问什么?代码行不行,有什么问题?
-
顺便说一句,您的
checkDependency函数应该使用布尔值解析返回的承诺,而不是改变一些全局dependency变量。 -
我猜这与“实际代码”相去甚远,因为有大约 100 种更好的方法来编写它:p
标签: javascript async-await ecmascript-2017