ES6 之 Promise 对象
首先, 文章内容基本来自 ECMAScript 6 入门 (作者 阮一峰)
简介
Promise 对象是异步编程的一种解决方案. 所谓 Promise, 简单来说就是一种容器, 里面包含着未来可能结束的一个事件的结果.
Promise 包含三种状态, pending,fulfilled,rejected.
表现为从 pending 到 fulfilled, 或者从 pending 到 rejected.
下面是一个 Promise 实例的生成
- // es5 写法
- const promise = new Promise(function(resolve, reject) {
- if (/* 这里填写操作 (一般是异步操作)*/) {
- resolve(value);
- } else {
- reject(error)
- }
- })
- // es6 写法, 以后默认使用 es6 语法
- const promiseEs = new Promise((resolve, reject) => {
- if (/* 操作 */) {
- resolve(value);
- } else {
- reject(error);
- }
- })
操作部位一般是一个异步方法, resolve 和 reject 是 es6 官方给的方法可以获取到操作部位的返回结果
promise 的使用
- promise.then((value) => {
- console.log("success" + value);
- }, (error) => {
- console.log("error" +error);
- })
then 方法接受两个回调函数作为参数, 第一个方法在 Promise 对象状态从 pending 变为 fulfilled 时调用, 第二个方法在状态从 pending 变为 rejected 时候调用.
另外 上面的使用方法可以写成类似于 try/catch 的形式, 将 rejected 时的处理剥离出来放到 catch 里面处理.
promise 的使用 2
- promise.then((value) => {
- console.log("success" + value);
- }).catch((error) => {
- console.log("error" +error);
- })
来源: https://www.2cto.com/kf/201809/778509.html