--- title: 异步JavaScript slug: learn/JavaScript/异步 tags: - JavaScript - Promises - requestAnimationFrame - 初学者 - 回调函数 - 异步 - 指南 - 等待 - 脚本编程 - 设置定时器 - 设置间隔 translation_of: Learn/JavaScript/Asynchronous ---
{{LearnSidebar}}

在这个模块,我们将查看 {{Glossary("asynchronous")}} {{Glossary("JavaScript")}},异步为什么很重要,以及怎样使用异步来有效处理潜在的阻塞操作,比如从服务器上获取资源。

预备知识

异步JavaScript 是一个相当高级的话题,建议你先完成( JavaScript first stepsJavaScript building blocks) 两个模块的学习后再来学习。

如果你还不熟悉异步编程的概念,请从 通用异步编程概念开始. 如果熟悉的话,可以直接从介绍异步JavaScript 开始.

Note: 如果在当前阅读本文档而使用的电子设备(电脑/平板/其他)上,你没有权限生成自己的文件,你可以使用 JSBin or Thimble 在线编程工具来尝试文章里面的代码示例

指南

一般异步编程概念

浏览 异步相关的重要概念,在浏览器和JS里面的应用,学习本模块其他文章之前,你应该理解这些基本的概念。

介绍异步JS
这篇文章简单概括同步JS遇到的问题,首次提到一些不同的异步JS技术,他们是如何解决同步JS的问题
合作异步JS:Timeouts and intervals
在这里介绍JS传统的异步方法:在一段时间后运行 或者 在设定时间周期反复运行,看看这些技术如何使用,有什么内在的问题.
优雅的处理异步操作:Promises
Promises 是JS一个相对比较新的特性,你可以使用它来延迟一些操作直到前面的代码已经返回结果。对于时间上顺序完成的一系列操作,这个真的有用。本文展示promises 如何工作,使用WebAPIs何处会见到它, 最重要的:怎样写你自己的promises.
让异步编程简单: async and await
Promises 有点复杂, 所以现代的浏览器都实现了 async 函数和 await 操作符 —--前者允许标准函数隐式地和 promises 工作, 后者可以在async 函数里面使用,等待promises运行结束,函数再继续运行。
选择正确的方法
结束本模块之前,回顾一下已经讨论的编程技术和特性:什么时候用哪个。有推荐,也有常见的陷阱提醒。

参考