zoukankan      html  css  js  c++  java
  • [JavaScript]Promise

    概述

    Promise提供一种执行异步回调动作时候,以链的形式操作回调结果的方法。

    用法

    new Promise(executor);

    误区

    1.executor不是消息队列,它会马上执行;

    2.executor必须至少调用resolve, reject两者之一,否则Promise的then/catch无法触发;

    3.catch()相当于then(null, rejectHandler);

    new Promise((resolve, reject) => {
        reject();
    })
    .catch(() => {
        console.log('Do that');
    })
    /*.then(null, () => {
        console.log('Do that');
    })*/
    //以上语法是对等的

    4.then/catch后面可以无限接then/catch,但是至于执行then的resolveHandler, rejectHandler,还是是否执行catch的rejectHandler,有两种可能性:

    如果一个Promise接下来是then,那么看看这个Promise调用的是resolve()还是reject(),如果then/catch存在相对应的handler,则调用,否则不执行直接返回Promise。而catch则可以把它当成then(null, rejectHandler)去理解;

    then/catch返回的Promise默认是resolve状态(注意,这里说的是then/catch返回的Promise,并不是初始化的第一个Promise),所以不管上一个then/catch调用的是resolveHandler还是rejectHandler,下一个调用的必然是resolveHandler,除非在上一个then/catch显式地调用了reject();

    5.所有调用reject()的Promise都需要调用then/catch捕捉这个reject,否则控制台会报错;

  • 相关阅读:
    OpenStack 数据库操作 demo
    python 实现获取电脑IP、主机名、Mac地址
    openvswitch BFD 简介
    Python 获取主机名
    OpenvSwitch完全使用手册
    ovs datapath笔记
    openstack 实用命令
    表示数值的字符串 牛客网 剑指Offer
    反转单词顺序列 牛客网 剑指Offer
    第一个只出现一次字符的位置 牛客网 剑指Offer
  • 原文地址:https://www.cnblogs.com/yiyide266/p/11084063.html
Copyright © 2011-2022 走看看