千家信息网

JavaScript中的Async和Await怎么用

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,小编给大家分享一下JavaScript中的Async和Await怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是
千家信息网最后更新 2024年09月21日JavaScript中的Async和Await怎么用

小编给大家分享一下JavaScript中的Async和Await怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

什么是异步任务?

异步任务可让您在异步任务仍在努力完成时完成其他任务。

以下是一些日常异步任务示例

示例 1:

您在驾车时订购食物,这会启动您的食物请求(异步任务)。

在准备食物的同时,您在得来速路线(下一个任务)中向前拉。

您不必等待食物准备好就可以前进。

您正在等待食物,您的要求在取货窗口得到满足。

示例 2:

你在厨房拖地。

当您等待厨房地板干燥时,您可以用吸尘器吸尘卧室的地毯。

最初的任务是清洁你的厨房地板,当地板干燥时,任务就完成了。

站在原地等待地板干燥的效率并不高,因此您在厨房地板干燥的同时用吸尘器吸尘卧室地板。

这也是 Javascript 处理异步函数的方式。

Async/Await 示例 - 烘烤冷冻比萨

您决定在烤箱中烤披萨,第一步是预热烤箱。

因此,您设置了所需的温度并开始预热烤箱。

当烤箱预热时,您将冷冻披萨从冰箱中取出,打开盒子,然后将其放在披萨盘上。

你还有时间!

也许在等待烤箱准备好时发出哔哔声的同时喝一杯饮料并看一些电视。

下面是一些代码来模拟这个例子:

// This async function simulates the oven responseconst ovenReady = async () => {  return new Promise(resolve => setTimeout(() => {    resolve('Beep! Oven preheated!')  }, 3000));}// Define preheatOven async functionconst preheatOven = async () => {  console.log('Preheating oven.');  const response = await ovenReady();  console.log(response);}// Define the other functionsconst getFrozenPizza = () => console.log('Getting pizza.');const openFrozenPizza = () => console.log('Opening pizza.');const getPizzaPan = () => console.log('Getting pan.');const placeFrozenPizzaOnPan = () => console.log('Putting pizza on pan.');const grabABeverage = () => console.log('Grabbing a beverage.');const watchTV = () => console.log('Watching television.');// Now call the functionspreheatOven();getFrozenPizza();openFrozenPizza();getPizzaPan();placeFrozenPizzaOnPan();grabABeverage();watchTV();// Output sequence in console:Preheating oven.Getting pizza.Opening pizza.Getting pan.Putting pizza on pan.Grabbing a beverage.Watching television.Beep! Oven preheated!

上述过程正是 async 和 await 的全部内容。

虽然我们await异步preheatOven功能齐全,我们可以执行类似任务同步getFrozenPizzaopenFrozenPizzagetPizzaPanplaceFrozenPizzaOnPangrabABeverage甚至watchTV。

我们一直在执行这样的异步任务

这也是Javascript 的ssync工作方式。

请注意,当我们await收到来自一个async函数的响应时,需要在另一个async函数中调用它。这就是当ovenReady调用preheatOven时我们在上面看到的。

要记住的两个关键点:

  1. Javascript 不会等待async类似的函数preheatOven完成,然后才会继续执行类似getFrozenPizza和openFrozenPizza的任务。

  2. Javascript 将await用于一个async函数,例如ovenReady在继续执行父异步函数内的下一个任务之前完成并返回数据。当console.log(response)语句ovenReady在返回响应之前不执行时,我们会看到这一点。

如果比萨饼的例子没有削减它......

我知道日常示例对我们中的一些人有帮助,但其他人可能更喜欢真正的代码。

因此,我将在下面提供一个不太抽象的异步和等待 JavaScript 示例,该示例使用 Fetch API 请求数据:

JavaScript 中的 Async/Await 代码示例

const getTheData = async () => {    try {    const response = await fetch('https://jsonplaceholder.typicode.com/users');    if (!response.ok) throw Error();    const data = await response.json();    // do something with this data... save to db, update the DOM, etc.    console.log(data);    console.log('You will see this last.')    } catch (err) {        console.error(err);    }} getTheData();console.log('You will see this first.');

以上是"JavaScript中的Async和Await怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

任务 示例 函数 地板 烤箱 食物 干燥 厨房 代码 内容 同时 篇文章 披萨 准备 例子 卧室 吸尘器 数据 方式 比萨 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全伴我行微课 计算机网络安全的维护总结 计算机软件开发师前景 在服务器如何启动自己写的程序 学生管理软件开发费用 xls怎么看多少数据库 数据库用户账号密码 网络安全与法治考试答案 如何收看节目和网络安全 mysql撤销部分数据库 网络安全特训班 软件开发模式 pass 网络安全威胁实时地图怎么看 服务完善的网络安全产业园 珠海臻高网络技术有限公司 进口软件开发服务税费 怎么访问阿里云服务器 威海迪尚互联网科技有限公司 互联网高科技装修 改数据库密码会引起程序的问题吗 软件开发费计入无形资产吗 石器时代服务器怎么样 达梦数据库如何查询自定义的函数 东营电商软件开发外包公司 积石山网络安全宣传 郴州网络安全演练 深圳软件开发的培训班 软件开发 详细设计 百威软件服务器连接数据库错误 网络连接老是无法连接服务器
0