面试官:请你谈一谈Promise ,应该怎么表达

98 阅读1分钟

1.定义:Promsie 是处理异步的一种方式

2.背景:

JS 是一门单线程的编程语言,代码从上往下执行,代码分为同步代码异步代码,同步代码是不需要消耗时间的,异步代码是需要消耗时间的,比如定时器和接口请求

3.Promise 的一些基本知识

Promise 接收两个参数,三个状态,两个参数是resolve,reject,三个状态分别是 pedding ,fulfilled,和rejected

当我们调用 resolve()的时候,状态会从 pedding--> fulfilled ,

当我们调用 reject() 方法的时候,状态会从pedding --> rejected ,

当我们调用resolve()的时候,后面可以接.then(),resolve(a) 里面的参数a 就是.then(res)里面的 res

当我们调用reject()的时候,后面可以接.catch(),reject(a) 里面的参数a 就是.catch(res)里面的 res

注意

Promsie 的状态不能直接从 fulfilled 变为 rejectd 或这从rejected 变为fulfilled

4. Promie 的作用,第一个解决回调地狱,第二个,解决代码阻塞问题(之前写的文章有详细的解释。可以看一下)

5. Promise 常见的一些方法

 Promise.all

 Promise.any

 Promise.race

三种方法都是接收一个数组,数组里放多个Promsie 对象

1. all方法的作用是当数组里面的所有Promise状态变为fulfilled ,才执行

2. any方法的作用是当数组里面任意的Promise状态变为fulfilled ,才执行

3. race()方法就是当数组里面任意的Promise状态改变的时候,才执行