Promise 是什么?
Promise 是异步编程的一种解决方案:
- 主要用于异步计算
- 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
- 可以在对象之间传递和操作 promise,帮助我们处理队列
Promise的参数是什么?
Promise接受一个「函数」作为参数,该函数的两个参数分别是resolve
和reject
。这两个函数就是就是「回调函数」
resolve
函数的作用:在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject
函数的作用:在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
Promise的三个状态是什么?
pending
[待定]初始状态fulfilled
[实现]操作成功rejected
[被否决]操作失败
当 promise 状态发生改变,就会触发 then()里的响应函数处理后续步骤; promise 状态一经改变,不会再变。
Promise 对象的状态改变,只有两种可能: 从 pending 变为 fulfilled。
从 pending 变为 rejected。
这两种情况只要发生,状态就凝固了,不会再变了。
Promise如何使用?
在 ES6 中,可以使用三种办法创建 Promise 实例(对象)
- 构造方法
let promies = new Promise((resolve, reject) => {
resolve(); //异步处理
});
Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是
resolve
和reject
。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。
- 通过 Promise 实例的方法,Promise#then 方法返回的也是一个 Promise 对象
promise.then(onFulfilled, onRejected);
- 通过 Promise 的静态方法,
Promise.resolve()
,Promise.reject()
var p = Promise.resolve();
p.then(function(value) {
console.log(value);
});