Javascript 带有异步SetTimeout函数的while循环
我有个问题。我的代码不起作用。它不会在console.log中显示最后一条消息(“结束”)。我使用setTimeOut承诺每3000毫秒做一件事。这是我的承诺函数setTimeOutJavascript 带有异步SetTimeout函数的while循环,javascript,asynchronous,while-loop,settimeout,Javascript,Asynchronous,While Loop,Settimeout,我有个问题。我的代码不起作用。它不会在console.log中显示最后一条消息(“结束”)。我使用setTimeOut承诺每3000毫秒做一件事。这是我的承诺函数setTimeOut function delay(message){ return new Promise(() => setTimeout(function(){console.log(message)}, 3000)) } 我在代码的异步函数中使用的: async () => { whil
function delay(message){
return new Promise(() => setTimeout(function(){console.log(message)}, 3000))
}
我在代码的异步函数中使用的:
async () => {
while (true){
console.log("Start")
await delay("No")
console.log("End")
}
}
我使我的代码更容易(没有所有必须调用的条件和函数),因为我认为我在理解承诺时遗漏了一些东西。我做错了什么
您能帮我一下吗?您在
延迟
/超时
功能中的承诺永远无法解决
下面是它的工作原理。注意promise回调的resolve
参数
功能延迟(消息){
返回新承诺((解析)=>setTimeout(函数(){
控制台日志(消息);
解决();
}, 3000))
}
(异步()=>{
while(true){
console.log(“开始”)
等待延迟(“否”)
控制台日志(“结束”)
}
})();代码>超时的定义在哪里
以及在哪里使用了延迟?您忘了在延迟中解决承诺问题。这是否回答了您的问题?抱歉,我更改了函数的名称以发布它,但是超时和延迟是相同的函数好的,我知道了,谢谢你的帮助。我误用了承诺,现在我开始明白它是如何运作的。