《智能前端技术与实践》——第 2 章 前端开发基础 ——2.6 深度学习中的 JavaScript——2.6.2 JavaScript 异步编程(上)

简介: 《智能前端技术与实践》——第 2 章 前端开发基础 ——2.6 深度学习中的 JavaScript——2.6.2 JavaScript 异步编程(上)

2.async/await 函数


async 函数是使用 async 关键字声明的函数,是 AsyncFunction 构造函数的实例,并且允许 使用 await 关键字。async 和 await 关键字让我们可以用一种更简洁的方式写出基于 Promise 的 异步行为,而无须刻意地链式调用 Promise。


async 函数可能包含 0 个或多个 await 表达式,await 表达式会暂停整个 async 函数的执行 进程并让出其控制权,只有当等待的基于 Promise 对象的异步操作成功或失败后才会恢复进程。 示例代码如代码清单 2-26 所示。


代码清单 2-26


functionresolveAfter2Seconds() {
returnnewPromise(resolve=> {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
asyncfunctionasyncCall() {
console.log('calling');
constresult=awaitresolveAfter2Seconds();
console.log(result);
console.log("hahaCoder")
// 期望输出: "resolved"}
asyncCall();

运行结果如下。


"calling""resolved""hahaCoder"


代码清单 2-26 首先会输出 calling 字符串,接着会执行 resolveAfter2Seconds()函数,由于 该函数前有 await 关键字,故 asyncCall 函数的执行进程会中断,2s 后,即异步操作执行完成 后会恢复进程,从而输出 resolved 和 hahaCoder。


不论是回调函数、Promise 还是 async/await 等其他异步任务解决方案,其本质都是通过 JavaScript 唯一的单线程执行所有任务。


本节最后介绍 HTML5 中新提出的概念——Web Worker,它可以帮助 JavaScript 创建多线 程环境,即允许主线程创建 worker 线程,并将一些任务分配给 worker 线程。


Web Worker 为 Web 内容在后台线程中运行脚本提供了一种简单的解决方法。worker 线程 可以执行任务而不干扰用户界面,等到 worker 线程完成对应的计算任务,将结果返回主线程。 示例代码如代码清单 2-27 所示。


代码清单 2-27


<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><title>web worker</title></head><body><script>varworker=newWorker("worker.js")
worker.onmessage= (evt) => {
console.log("Message posted from webworker: "+evt.data);
}
worker.postMessage("Hello,I'm hahaCoder from demo.html");
</script></body></html>

Worker.js 中的代码如代码清单 2-28 所示。


代码清单 2-28


postMessage("Hello,I'm shipudong from worker.js");
onmessage= (evt) => {
postMessage("Worker received data: "+evt.data);
};

运行结果如图 2-32 所示。


image.png



《智能前端技术与实践》——第 2 章 前端开发基础 ——2.6 深度学习中的 JavaScript——2.6.2 JavaScript 异步编程(下): https://developer.aliyun.com/article/1228121?groupCode=tech_library


相关文章
|
1天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
10 3
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别技术在自动驾驶领域的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理和识别方面的突破性进展,自动驾驶汽车逐渐成为现实。本文将深入探讨深度学习技术在图像识别领域的应用,以及如何通过这些技术提高自动驾驶系统的性能和安全性。我们将分析卷积神经网络(CNN)在车辆检测、行人识别和交通标志识别中的作用,并讨论数据增强、迁移学习和对抗网络等策略如何帮助提升模型的泛化能力和鲁棒性。此外,文中还将涉及深度学习模型在实时处理和嵌入式系统部署时面临的挑战及其解决方案。
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,基于深度学习的图像识别技术已成为自动驾驶系统不可或缺的核心组成部分。该技术通过模拟人类视觉系统处理与理解环境信息的过程,赋予自动驾驶车辆高度准确和实时的环境感知能力。本文首先概述了深度学习在图像识别领域的关键技术与方法,包括卷积神经网络(CNN)及其变体、循环神经网络(RNN)等,并探讨了这些技术在自动驾驶系统中的具体应用,如车辆检测、行人识别、交通标志识别以及道路场景理解。随后,文章分析了当前技术面临的主要挑战,包括数据集的多样性与质量、模型泛化能力、实时处理要求及系统的鲁棒性问题。最后,展望了未来图像识别技术在自动驾驶领域的发展趋势,特
|
1天前
|
JavaScript 前端开发
深入了解前端框架Vue.js的响应式原理
本文将深入探讨Vue.js前端框架的核心特性之一——响应式原理。通过分析Vue.js中的数据绑定、依赖追踪和虚拟DOM等机制,读者将对Vue.js的响应式系统有更深入的理解,从而能够更好地利用Vue.js构建灵活、高效的前端应用。
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶汽车中的应用
【5月更文挑战第10天】 随着人工智能技术的飞速发展,尤其是深度学习在图像识别领域的突破,自动驾驶技术迎来了新的发展机遇。本文将深入探讨基于深度学习的图像识别技术是如何被集成到自动驾驶汽车系统中,并分析其对提高车辆环境感知能力、决策系统准确性和整体安全性的影响。通过对比传统算法与深度学习方法的性能差异,我们展示了深度学习在处理复杂交通场景中的优势,以及在实时性要求极高的环境下的挑战和应对策略。
5 0
|
2天前
|
机器学习/深度学习 数据采集 算法
探索基于深度学习的图像识别技术
【5月更文挑战第9天】 在本文中,我们将深入分析并讨论一种前沿技术——基于深度学习的图像识别。这一技术已经成为计算机视觉领域的重要分支,并在医疗、安防、自动驾驶等多个行业中得到广泛应用。文章首先概述了深度学习的基本理论,然后重点探讨了卷积神经网络(CNN)在图像处理中的应用,最后通过一个实际案例来展示该技术的有效性和潜力。我们旨在为读者提供一个清晰、系统的技术概览,以及对未来发展趋势的展望。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第9天】 随着人工智能技术的飞速发展,深度学习已成为推动自动驾驶领域进步的关键力量。本文聚焦于基于深度学习的图像识别技术,并探讨其在自动驾驶系统中的实际应用。文章首先简述了深度学习的基本原理及其在图像处理中的优势,随后详细分析了卷积神经网络(CNN)和递归神经网络(RNN)等关键模型在车辆环境感知、行人检测以及交通标志识别方面的应用实例。最后,文中提出了当前技术面临的挑战及潜在的解决策略,旨在为未来自动驾驶技术的发展提供参考。
|
3天前
|
机器学习/深度学习 传感器 算法
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
|
6天前
|
机器学习/深度学习 边缘计算 计算机视觉
基于深度学习的图像识别优化技术研究
【5月更文挑战第5天】 在当前的计算机视觉领域,图像识别技术已取得显著进展,尤其是深度学习方法的广泛应用。然而,随着数据量的日益增加和模型复杂度的提升,如何提高图像识别的效率与准确性成为新的挑战。本文提出了一种基于改进卷积神经网络(CNN)的图像识别优化技术,旨在减少模型参数量、加速推理过程,并保持甚至提升识别精度。通过引入深度可分离卷积、注意力机制以及量化剪枝策略,该技术在多个标准数据集上显示出了卓越的性能。
|
7天前
|
机器学习/深度学习 算法 大数据
探索深度学习在图像识别领域的前沿技术
【5月更文挑战第4天】 当前,深度学习技术正以其卓越的数据处理能力重塑多个科学领域,尤其是在图像识别这一计算机视觉的核心问题上取得了显著进展。本文聚焦于深度学习在图像识别应用中的最新发展,探讨了卷积神经网络(CNN)的高级架构、数据增强、迁移学习以及对抗性训练等关键技术。通过比较传统方法与现代深度学习策略的效能差异,揭示了深度学习在提升图像识别准确性方面的潜力。此外,文章还讨论了模型泛化和优化方面的挑战,并对未来可能的研究方向提供了展望。
28 6