【发布时间】:2021-07-24 06:32:07
【问题描述】:
我无法解决已创建的 Promise。不知道问题出在哪里,请帮我解决这个问题。
const tsearch = async () => {
console.log("calling")
//requesting the relevant page data
await new Promise((resolve) => {
getData("wifi", 2, true);
return resolve("success")
});
console.log(finished);
}
function getData(url, callControl = 0, wifi = false) {
if (!!url) {
console.log(url + " - " + callControl)
}
if (callControl > 0)
setTimeout(getData, 1000, url, --callControl)
else {
console.log("getData - else part - resolving")
// Promise.resolve();
}
}
tsearch();
【问题讨论】:
-
您正在立即解决 - getData 中的超时不会阻止您调用解决
-
您必须将 resolve 传递给 getData 以便 getData 在完成时调用它。
-
将 getData 调用修改为
getData("wifi", 2, true, resolve);并在 getData() 方法中添加了Promise.resolve(resolve);似乎仍然不起作用,我是否遗漏了什么。
标签: javascript promise resolve