Skip to content

Commit

Permalink
update: Promise
Browse files Browse the repository at this point in the history
  • Loading branch information
qianguyihao committed Apr 7, 2020
1 parent 3ec2131 commit e794fff
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 9 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -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的时候,在多层嵌套回调时,写完的代码层次过多,很难进行维护和二次开发。


### 回调地狱的举例
Expand Down

0 comments on commit e794fff

Please sign in to comment.