Promise

一.promise是什么?

Promise是一种用于解决异步问题的思路、方案或者对象方式。

1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作promise,帮助我们处理队列

二.promise怎么用?

Promise是一个对象,所以先用new的方式创建一个,然后给它传一个函数作为参数,这个函数有两个参数,
一个叫reolve,另一个叫reject、紧接着,就用then来进行调用
new Promise(
  function (resolve, reject) {
    // 一段耗时的异步操作
    resolve('成功') // 数据处理完成
    // reject('失败') // 数据处理出错
  }
).then(
  (res) => {console.log(res)},  // 成功
  (err) => {console.log(err)} // 失败
)
  • resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;
    reject作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。
  • promise有三个状态:
    1、pending[待定]初始状态
    2、fulfilled[实现]操作成功
    3、rejected[被否决]操作失败
    当promise状态发生改变,就会触发then()里的响应函数处理后续步骤;
    promise状态一经改变,不会再变。
  • Promise对象的状态改变,只有两种可能:
    从pending变为fulfilled
    从pending变为rejected。
    这两种情况只要发生,状态就凝固了,不会再变了。

三.Promise原理

   在Promise内部,有一个状态管理器的存在,有三种状态: pending、fulfilled、rejected
   (1) promise初始化状态为pending
   (2) 当前调用resolve(成功), 会由pending => fulfilled
   (3) 当调用reject(失败), 会由pending => rejected
 
posted @ 2020-10-23 08:16  peifengyang  阅读(105)  评论(0编辑  收藏  举报