zoukankan      html  css  js  c++  java
  • Promise.resolve解析

    总结自:https://blog.csdn.net/lq15310444798/article/details/81275278

    Promise.resolve返回一个Promise实例

    参数分4种情况:

    1.参数为Promise实例

    返回此实例

    可能执行catch

    ------------------------------------------------------------

    2.参数为thenable对象

    备注:thenable对象为带有then方法的对象

    将此对象转换为Promise实例,并立即执行其then方法

    不会执行catch

    let thenable= {
    //注意then里居然有resolve,reject then:
    function(resolve,reject){ resolve('lala') } } Promise.resolve(thenable).then((value)=>{ console.log(value)//lala })

    ------------------------------------------------------------

    3.参数为基本类型或非thenable对象的对象

    返回一个Promise对象,状态为resolved(执行成功,进入then)

    直接执行then方法,且value为参数的值

    不会执行catch(因为状态为resolved)

    Promise.resolve(1).then((value)=>{
        console.log(value)//1
    })

    ------------------------------------------------------------

    4.不带任何参数

    直接返回一个状态为resolved的Promise对象

    不会执行catch

    ------------------------------------------------------------

    注意:立即resolve的Promise对象是在本轮“事件循环”结束时执行,而不是在下一轮“事件循环”开始时执行!

    setTimeout(function(){
        console.log("three");//下一轮事件循环执行
    },0);
    Promise.resolve().then(function(){
        console.log("two");
    });
    console.log("one");
  • 相关阅读:
    iOS开发常用的第三方框架
    回传值(代理、通知、block)
    给控制器添加工具栏(Swift语言)
    Swift语言 代码添加文本输入框 和 占位文本
    MD5加密运算
    Xcode7.0设置网络白名单
    base64加密解密文件
    关于iOS应用管理之九宫格的坐标计算以及与UIScrollView的结合
    3、Struts2中的参数传值
    2、Action的多种写法配置
  • 原文地址:https://www.cnblogs.com/yanze/p/11452681.html
Copyright © 2011-2022 走看看