diff --git a/01-HTML/09-html标签图文详解(二).md b/01-HTML/07-html标签图文详解(二).md similarity index 100% rename from 01-HTML/09-html标签图文详解(二).md rename to 01-HTML/07-html标签图文详解(二).md diff --git a/01-HTML/11-HTML5详解.md b/01-HTML/08-HTML5详解.md similarity index 100% rename from 01-HTML/11-HTML5详解.md rename to 01-HTML/08-HTML5详解.md diff --git a/01-HTML/12-HTML5举例:简单的视频播放器.md b/01-HTML/09-HTML5举例:简单的视频播放器.md similarity index 100% rename from 01-HTML/12-HTML5举例:简单的视频播放器.md rename to 01-HTML/09-HTML5举例:简单的视频播放器.md diff --git a/01-HTML/13-HTML5详解(二).md b/01-HTML/10-HTML5详解(二).md similarity index 100% rename from 01-HTML/13-HTML5详解(二).md rename to 01-HTML/10-HTML5详解(二).md diff --git a/01-HTML/14-HTML5详解(三).md b/01-HTML/11-HTML5详解(三).md similarity index 100% rename from 01-HTML/14-HTML5详解(三).md rename to 01-HTML/11-HTML5详解(三).md diff --git a/01-HTML/15-HTML基础回顾.md b/01-HTML/12-HTML基础回顾.md similarity index 100% rename from 01-HTML/15-HTML基础回顾.md rename to 01-HTML/12-HTML基础回顾.md diff --git a/10-ES6/09-ES6:字符串、数组、对象的扩展.md b/10-ES6/06-ES6:字符串、数组、对象的扩展.md similarity index 100% rename from 10-ES6/09-ES6:字符串、数组、对象的扩展.md rename to 10-ES6/06-ES6:字符串、数组、对象的扩展.md diff --git a/10-ES6/08-ES6:promise、async等.md b/10-ES6/07-ES6:Promise详解.md similarity index 87% rename from 10-ES6/08-ES6:promise、async等.md rename to 10-ES6/07-ES6:Promise详解.md index 09e6464..9f8a59e 100644 --- a/10-ES6/08-ES6:promise、async等.md +++ b/10-ES6/07-ES6:Promise详解.md @@ -1,22 +1,46 @@ -## 前言 +## 异步调用 -文本主要内容: +### 异步 -- Promise(比较重要) +JavaScript的执行环境是**单线程**。 -- Symbol +所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务。这个任务可称为主线程 -- async函数 - -## Promise - -### 概述 - -Promise对象: 代表了未来某个将要发生的事件(通常是一个异步操作)。 +异步模式可以一起执行**多个任务**。 -ES6中的promise对象, 可以**将异步操作以同步的流程表达出来,**很好地解决了**回调地狱**的问题(避免了层层嵌套的回调函数)。在使用ES5的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发。 +### 接口调用的方式 + +js 中常见的接口调用方式,有以下几种: + +- 原生ajax +- 基于jQuery的ajax +- Fetch +- Promise +- axios + +### 多次异步调用的依赖分析 + +- 多次异步调用的结果,顺序不同步。 + +- 异步调用的结果如果**存在依赖**,则需要嵌套。 + +在ES5中,当进行多层嵌套回调时,会导致代码层次过多,很难进行维护和二次开发;而且会导致**回调地狱**的问题。而ES6中的Promise 就可以解决这两个问题。 + + +## Promise 概述 + +### Promise的介绍和优点 + +ES6中的Promise 是异步编程的一种方案。从语法上讲,Promise 是一个对象,它可以获取异步操作的消息。 + +Promise对象, 可以**将异步操作以同步的流程表达出来**。使用 Promise 主要有以下好处: + +- 可以很好地解决**回调地狱**的问题(避免了层层嵌套的回调函数)。 + +- 语法更佳简洁。Promise 对象提供了简洁的API,使得控制异步操作更加容易。 + ### 回调地狱的举例