【问题标题】:what is the difference between synchronous and asynchronous in Javascript?Javascript中的同步和异步有什么区别?
【发布时间】:2021-01-31 18:41:34
【问题描述】:

我对这两个术语感到困惑:(同步和异步)在 Javascript 中我搜索了很多我发现很多来源都在谈论这个,但没有来源清楚而容易地解释这一点。

英语中的同步是指某些东西同时运行或同时运行,但与异步运行不同的是,它不会同时运行。所以,从这两个术语同步JS执行你想要同步的任务我们假设同时有两个任务我需要它工作所以我认为它的名称是同步任务,而不是异步任务,对吗?

但是当我阅读一些资料时,我发现这些术语适用于 JS 中的异步而不是同步术语。

所以,我想知道 Javascript 中同步和异步之间的区别只是为了理解,我应该在哪里使用它们?

【问题讨论】:

标签: javascript synchronization


【解决方案1】:

同步代码是在队列中运行的东西,假设如果你有5行代码那么下一行代码将等待上一行完成执行然后它会执行

同步代码示例

async function getTodos() {
  const resp = await  fetch("https://jsonplaceholder.typicode.com/todos/1")
    .then(async (response) => await response.json())
    .then((json) => json);
  console.log(resp);
}

在上面的代码中,resp 将等待 api 给出结果,然后等待它打印,但如果我们不使其同步,代码将继续运行,它不会等待数据到来并打印结果控制台

function getTodos() {
  const resp = fetch("https://jsonplaceholder.typicode.com/todos/1")
    .then(async (response) => await response.json())
    .then((json) => json);
  console.log(resp);
}

在您自己的机器上运行它以获得更多说明

【讨论】:

    【解决方案2】:

    同步函数一个接一个地执行您的代码,它一次只能处理一个代码,直到代码堆栈为空,而异步意味着您可以跳过代码中的一个步骤。例如,假设您正在构建一个应用程序,并且您从在线请求数据,并且该数据是您的用户在访问您的网站时看到的内容,那么如果网站中存在网络延迟,您请求数据您的页面将不会打开直到它获取该数据。如果您使用异步功能,您可能会决定渲染应用程序的某些部分,这样您的用户就不必盯着空白页面(这不是一个好的用户体验)。哦,希望我回答了你的问题,但如果还不清楚,请告诉我,我可以通过使用一些代码作为示例来帮助演示......

    【讨论】:

      【解决方案3】:

      同步代码按顺序执行。每行等待前一行完成后再执行。如果代码是异步的,你的程序可以继续运行。它对于从数据库中提取数据特别有用。您这样做是为了减少用户的等待时间。

      【讨论】:

        猜你喜欢
        • 2011-01-09
        • 1970-01-01
        • 2013-04-26
        • 2021-11-05
        • 2016-03-17
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        相关资源
        最近更新 更多