diff --git "a/01-HTML/09-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" "b/01-HTML/07-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" similarity index 100% rename from "01-HTML/09-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" rename to "01-HTML/07-html\346\240\207\347\255\276\345\233\276\346\226\207\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" diff --git "a/01-HTML/11-HTML5\350\257\246\350\247\243.md" "b/01-HTML/08-HTML5\350\257\246\350\247\243.md" similarity index 100% rename from "01-HTML/11-HTML5\350\257\246\350\247\243.md" rename to "01-HTML/08-HTML5\350\257\246\350\247\243.md" diff --git "a/01-HTML/12-HTML5\344\270\276\344\276\213\357\274\232\347\256\200\345\215\225\347\232\204\350\247\206\351\242\221\346\222\255\346\224\276\345\231\250.md" "b/01-HTML/09-HTML5\344\270\276\344\276\213\357\274\232\347\256\200\345\215\225\347\232\204\350\247\206\351\242\221\346\222\255\346\224\276\345\231\250.md" similarity index 100% rename from "01-HTML/12-HTML5\344\270\276\344\276\213\357\274\232\347\256\200\345\215\225\347\232\204\350\247\206\351\242\221\346\222\255\346\224\276\345\231\250.md" rename to "01-HTML/09-HTML5\344\270\276\344\276\213\357\274\232\347\256\200\345\215\225\347\232\204\350\247\206\351\242\221\346\222\255\346\224\276\345\231\250.md" diff --git "a/01-HTML/13-HTML5\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" "b/01-HTML/10-HTML5\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" similarity index 100% rename from "01-HTML/13-HTML5\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" rename to "01-HTML/10-HTML5\350\257\246\350\247\243\357\274\210\344\272\214\357\274\211.md" diff --git "a/01-HTML/14-HTML5\350\257\246\350\247\243\357\274\210\344\270\211\357\274\211.md" "b/01-HTML/11-HTML5\350\257\246\350\247\243\357\274\210\344\270\211\357\274\211.md" similarity index 100% rename from "01-HTML/14-HTML5\350\257\246\350\247\243\357\274\210\344\270\211\357\274\211.md" rename to "01-HTML/11-HTML5\350\257\246\350\247\243\357\274\210\344\270\211\357\274\211.md" diff --git "a/01-HTML/15-HTML\345\237\272\347\241\200\345\233\236\351\241\276.md" "b/01-HTML/12-HTML\345\237\272\347\241\200\345\233\236\351\241\276.md" similarity index 100% rename from "01-HTML/15-HTML\345\237\272\347\241\200\345\233\236\351\241\276.md" rename to "01-HTML/12-HTML\345\237\272\347\241\200\345\233\236\351\241\276.md" diff --git "a/10-ES6/09-ES6\357\274\232\345\255\227\347\254\246\344\270\262\343\200\201\346\225\260\347\273\204\343\200\201\345\257\271\350\261\241\347\232\204\346\211\251\345\261\225.md" "b/10-ES6/06-ES6\357\274\232\345\255\227\347\254\246\344\270\262\343\200\201\346\225\260\347\273\204\343\200\201\345\257\271\350\261\241\347\232\204\346\211\251\345\261\225.md" similarity index 100% rename from "10-ES6/09-ES6\357\274\232\345\255\227\347\254\246\344\270\262\343\200\201\346\225\260\347\273\204\343\200\201\345\257\271\350\261\241\347\232\204\346\211\251\345\261\225.md" rename to "10-ES6/06-ES6\357\274\232\345\255\227\347\254\246\344\270\262\343\200\201\346\225\260\347\273\204\343\200\201\345\257\271\350\261\241\347\232\204\346\211\251\345\261\225.md" diff --git "a/10-ES6/08-ES6\357\274\232promise\343\200\201async\347\255\211.md" "b/10-ES6/07-ES6\357\274\232Promise\350\257\246\350\247\243.md" similarity index 87% rename from "10-ES6/08-ES6\357\274\232promise\343\200\201async\347\255\211.md" rename to "10-ES6/07-ES6\357\274\232Promise\350\257\246\350\247\243.md" index 09e64641..9f8a59ed 100644 --- "a/10-ES6/08-ES6\357\274\232promise\343\200\201async\347\255\211.md" +++ "b/10-ES6/07-ES6\357\274\232Promise\350\257\246\350\247\243.md" @@ -1,22 +1,46 @@ -## 前言 +## 异步调用 -文本主要内容: +### 异步 -- Promise(比较重要) +JavaScript的执行环境是**单线程**。 -- Symbol +所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务。这个任务可称为主线程 -- async函数 +异步模式可以一起执行**多个任务**。 -## Promise -### 概述 +### 接口调用的方式 + +js 中常见的接口调用方式,有以下几种: + +- 原生ajax +- 基于jQuery的ajax +- Fetch +- Promise +- axios + +### 多次异步调用的依赖分析 + +- 多次异步调用的结果,顺序不同步。 + +- 异步调用的结果如果**存在依赖**,则需要嵌套。 + +在ES5中,当进行多层嵌套回调时,会导致代码层次过多,很难进行维护和二次开发;而且会导致**回调地狱**的问题。而ES6中的Promise 就可以解决这两个问题。 + + +## Promise 概述 + +### Promise的介绍和优点 + +ES6中的Promise 是异步编程的一种方案。从语法上讲,Promise 是一个对象,它可以获取异步操作的消息。 + +Promise对象, 可以**将异步操作以同步的流程表达出来**。使用 Promise 主要有以下好处: -Promise对象: 代表了未来某个将要发生的事件(通常是一个异步操作)。 +- 可以很好地解决**回调地狱**的问题(避免了层层嵌套的回调函数)。 +- 语法更佳简洁。Promise 对象提供了简洁的API,使得控制异步操作更加容易。 -ES6中的promise对象, 可以**将异步操作以同步的流程表达出来,**很好地解决了**回调地狱**的问题(避免了层层嵌套的回调函数)。在使用ES5的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发。 ### 回调地狱的举例