美文网首页
Promise.resolve()的参数分4种情况

Promise.resolve()的参数分4种情况

作者: 廊桥梦醉 | 来源:发表于2021-08-12 17:53 被阅读0次

(1)参数是Promise实例,那么Promise.resolve将不做任何修改,原封不动的返回这个实例,不做任何处理

(2) 参数是thenable对象

thenable对象指的是具有then方法的对象,promise.resolve会将thenable对象转换成promise对象并立即执行thenable对象的then方法,thenable的then方法执行完,对象p1的状态变为resolve,从而执行最后的then方法指定的回调函数,输出42

(3)参数不是具有then方法的对象,或者根本不是对象

 如果参数是一个原始值,或者是一个不具有then方法的对象,则Promise.resolve方法返回一个新的 Promise 对象,状态为resolved

由于字符串Hello不属于异步操作(判断方法是字符串对象不具有 then 方法),返回 Promise 实例的状态从一生成就是resolved,所以回调函数会执行。Promise.resolve方法的参数,会同时传给回调函数

(4) 不带参数

Promise.resolve方法允许调用时不带参数,直接返回一个resolved状态的 Promise 对象。

.then()函数里不返回值或者返回的不是promise,那么 then 返回的 Promise 将会成为接受状态(resolve)

ps:特殊案例

resolve()本质作用

resolve()是用来表示promise的状态为fullfilled,相当于只是定义了一个有状态的Promise,但是并没有调用它;
promise调用then的前提是promise的状态为fullfilled;
只有promise调用then的时候,then里面的函数才会被推入微任务中;

 原文链接:https://blog.csdn.net/my_new_way/article/details/104838192

相关文章

  • Promise.resolve()的参数分4种情况

    (1)参数是Promise实例,那么Promise.resolve将不做任何修改,原封不动的返回这个实例,不做任何...

  • Java反射代码消除if_else选择问题(收藏,当工具类使用)

    代码块 解释 针对构造函数传入的参数个数分别进行解释 无参: 表示Object[] 数组传入的是0个参...

  • ES6 参数

    我们知道,参数分为形参(parameter)和实参(argument),形参是指函数定义时的参数,实参是指真正传入...

  • swift基础——函数

    函数分类 无参无返 下面三种方式都可以Void在swift里的定义就是空元组() 无参有返 有参无返 有参有返 函...

  • js什么鬼? 之 你真的懂吗?

    promise then (...args) reduce Promise.resolve() 来...

  • 简单看懂方法的参数传递

    方法的参数传递 一.方法的参数传递: <1>参数分为哪几种?1.实参;2.形参; <2>什么是实参,什么是形参?假...

  • Promise.resolve 的使用

    今天看到一个中间件,中使用了Promise.resolve,在这里做一下总结: Promise.resolve共有...

  • Promise.resolve()

    参考文档:ECMAScript 6入门 Promise.resolve()用于将现有对象转换为Promise对象,...

  • python之函数

    函数 参数分为形参与实参形参:位置参数、默认参数、可变参数、关键字参数 位置参数:形参和实参个数必须保持一致。为了...

  • 机器视觉-相机标定

    基本概念 相机标定中所要确定的几何模型参数分为内参和外参两种类型。 求解参数(内参、外参、畸变参数)的过程就称之为...

网友评论

      本文标题:Promise.resolve()的参数分4种情况

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