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");
  • 相关阅读:
    Eclipse快捷键
    LeeCode
    Code Complete
    Git
    sql优化策略
    FSA/FSM/FST
    索引失效情况
    实现HttpHandlerFactory的方法
    Xpath语法格式整理
    Edojs应用
  • 原文地址:https://www.cnblogs.com/yanze/p/11452681.html
Copyright © 2011-2022 走看看