我的问题是关于 JS 的一个非常基本的概念。为了理解 Promise
和 Async-Await
的美妙之处,我首先创建了一个普通代码,它逐行执行。
我被教导在传统代码中,如果一行忙于某个进程几秒钟,那么剩余的代码行将不得不等待。我的理解是这样的:
line of code 1 // completed
line of code 2 // completed
server interaction // waiting for response from server
line of code 3 // waiting
line of code 4 // waiting
line of code 5 // waiting
为了模拟这个服务器延迟,我使用了 setTimeout(3000)
但我仍然可以看到其余的行正在正常执行。这是我的代码:
ngOnInt() {
console.log("hello");
console.log("how");
setTimeout(()=>{
console.log("i was waiting");
}, 3000);
console.log("are");
console.log("you");
}
输出:
hello
how
are
you
i was waiting
我原以为先打印“你好”、“如何”,然后在 3 秒后打印“are”、“you”。我犯错的地方。请纠正我。