如何模拟 JavaScript 中的异步代码问题

时间:2021-06-26 09:29:54

标签: javascript

我的问题是关于 JS 的一个非常基本的概念。为了理解 PromiseAsync-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”。我犯错的地方。请纠正我。

0 个答案:

没有答案