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");
  • 相关阅读:
    Nginx无缝升级
    ajax form提交的问题
    Ubuntu下pecl_http的安装
    提高PHP的运行效率的方法
    php.ini中文对照
    类似 TP中 eq 标签
    PHP身份证验证程序
    mysql在php中的应用
    如何添加JavaScript到Joomla模板中去
    USACO / Controlling Companies (类似BFS)
  • 原文地址:https://www.cnblogs.com/yanze/p/11452681.html
Copyright © 2011-2022 走看看