概述
Promise 是异步编程的一种解决方案,它是一个构造函数,Promise 有属于自己的 all、reject、resolve等私有方法,其原型上有 then、catch 等方法。
使用 Promise 可以解决 “回调地狱” 的问题。
Promise 对象表示尚未完成且在未来完成的事件(通常为一个异步操作)。
- 异步:可以一起执行多个任务,函数调用后不会立即返回执行的结果,如果任务A需要等待,可先执行任务B,等到任务A结果返回后再继续回调。
Promise 可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(回调地狱)。
Promise(callback)
是一个构造函数,接收一个参数,该参数是一个带有 resolve 和 reject 两个参数的回调函数(回调函数中的 resolve 与 reject 这两个参数也是函数)。
创建 Promise 对象实例的语法:
new Promise( function(resolve, reject) {…} )
参数:
resolve
操作成功调用的函数reject
操作失败调用的函数
Promise 对象有三个状态
- pending:初始化状态
- fullfilled:操作成功的状态
- rejected:造作失败的状态
在 Peomise 的回调函数中可执行一些操作(例如异步);如果一切都正常(操作成功)将 promise 的状态修改为 fullfilled,调用 resolve; 否则(操作失败)将 promise 的状态修改为 rejected,调用 reject。
在操作完成后 resolve 与 reject