繁体   English   中英

带有异步 SetTimeout 的 while 循环 function

[英]A while loop with an async SetTimeout function

我有个问题。 我的代码不起作用。 它不显示 console.log 中的最后一条消息(“结束”)。 我使用 setTimeOut promise 每 3000 毫秒做一件事。 这是我的 promise function setTimeOut

function delay(message){
return new Promise(() => setTimeout(function(){console.log(message)}, 3000))
}

我在我的代码中使用异步 function:

async () => {
              while (true){
                console.log("Start")
                await delay("No")
                console.log("End")
              }

            }

我使我的代码更简单(没有我必须调用的所有条件和函数),因为我认为我可能在理解 promise 时遗漏了一些东西。 我究竟做错了什么?

你能帮我吗?

您的 promise delay / timeout function 永远无法解决。

这是它的工作原理。 注意 promise 回调的resolve参数。

 function delay(message){ return new Promise((resolve) => setTimeout(function(){ console.log(message); resolve(); }, 3000)) } (async () => { while (true){ console.log("Start") await delay("No") console.log("End") } })();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM