Promise 的概念
Promise是对JavaScript异步编程的一种解决方案,由于传统异步编程的一大特点是不断的回调嵌套,使得代码难以维护。于是Promise使用一种链式调用去解决这个问题。
* 看看Promise是一个什么东西 *
ES6提供了原生的构造函数Promise
// Chrome浏览器控制台> typeof Promise"function"> Promisefunction Promise() {[native code] }
// node环境console.log(Promise) //[Function: Promise]console.log(Promise.toString()) // function Promise() { [native code] }
Promise的状态和特点
它具有三种状态:
pending 未完成resolved 已完成(成功)rejected 已失败
一个Promise对象代表一个异步操作,可把Promise当作一个容器,里面放着异步函数。* Promise对象一旦创建,就会立即执行*。
状态是由进行中转为已完成或转为已失败,状态一旦改变,则不会再变。
外界不能改变Promise自身的状态,状态由其异步操作的结果来决定。
Promise的延迟执行
由于Promise对象一旦创建就会执行,所以可以有一种方法让promise创建执行先不执行,等需要的时候再执行。* 创建一个普通的function,让它return一个Promise对象,等需要执行这个Promise的时候调用这个普通function。*
let p1 = function () {return new Promise((resolve, reject) =&g