美文网首页
Promise 的基本使用

Promise 的基本使用

作者: bestCindy | 来源:发表于2020-08-10 23:32 被阅读0次
    const pro = new Promise((resolve, reject) => {
        // 未决阶段的处理
        // 通过调用 resolve 函数将 Promise 推向已决阶段的 resolve 状态
        // 通过调用 reject 函数将 Promise 推向已决阶段的 reject 状态
        // resolve 和 reject 均可以传递最多一个参数,表示推向状态的数据
    });
    
    pro.then(data => {
        // 这是 thenable 函数,如果当前的 Promise 已经是 resolve 状态,该函数会立即执行
        // 如果当前是未决阶段,则会加入到作业队列,等待到达 resolve 状态后执行
        // data 为状态数据 
    }, err => {
        // 这是 catchable 函数,如果当前的 promise 已经是 rejected 状态,该函数会立即执行
        // 如果当前是未决节点,则加入到作业队列,等待到达 rejected 状态后执行
        // err 为状态数据
    });
    

    细节
    1、未决阶段的处理函数是同步的,会立即执行
    2、thenable 和 catchable 函数是异步的,就算是立即执行,也会加入到事件队列中等待执行,并且,加入的队列是微队列
    3、pro.then 可以只添加 thenable 函数,pro.catch 可以单独添加 catchable 函数
    4、在未决阶段的处理函数中,如果发生未捕获的错误,会将状态推向 rejected,并会被 catchable 捕获
    5、一旦状态推向了已决阶段,无法再对状态做任何更改
    6、Promise 并没有消除回调,只是让回调变得可控

    相关文章

      网友评论

          本文标题:Promise 的基本使用

          本文链接:https://www.haomeiwen.com/subject/baksdktx.html