Promise
构造函数接受一个函数作为参数,该函数的两个参数分别是resolve
和reject
1 | const promise = new Promise(function(resolve, reject) { |
resolve
函数的作用是,将Promise
对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject
函数的作用是,将Promise
对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
例1:
1 | let promise = new Promise(function(resolve, reject) { |
用三个相互依赖的网络请求做例子,假如我们有三个网络请求,请求2必须依赖请求1的结果,请求3必须依赖请求2的结果,如果用回调的话会有三层,会陷入“回调地狱”,用Promise就清晰多了
1 | const request = require("request"); |
then
是可以链式调用的,后面的then
可以拿到前面resolve
出来的数据,