当前位置: 首页 > 知识库问答 >
问题:

我如何判断一个对象是否是一个promise?

终波涛
2023-03-14

无论是ES6promise还是蓝鸟promise、Qpromise等。

如何测试给定对象是否为Promise?

共有3个答案

韩彦君
2023-03-14

免责声明:不是更新OP的好答案,是每个库的,不会跨领域工作。检查.然后改为

这个基于规范的答案是测试promise的一种方法,仅供参考。

Promise.resolve(obj) == obj &&
BLUEBIRD.resolve(obj) == obj

这是因为算法明确要求Promise.resolve必须返回传入的确切对象,当且仅当它是此构造函数创建的promise时。

葛深
2023-03-14

检查是否有promise会不必要地使代码复杂化,只需使用promise.resolve

Promise.resolve(valueOrPromiseItDoesntMatter).then(function(value) {

})
宓文斌
2023-03-14

如果它有。那么函数-这是promise库唯一使用的标准函数。

Promises/A规范有一个称为thenable的概念,它基本上是“具有then方法的对象”。promise将并且应该用一种方法吸收任何东西。您提到的所有promise实现都是这样做的。

如果我们看一下规范:

2.3.3.3如果那么是一个函数,那么用x作为这个函数调用它,第一个参数解析Promise,第二个参数rejectPromise

它还解释了该设计决策的基本原理:

这种对thenables的处理允许promise实现进行互操作,只要它们公开符合Promises/a的then方法。它还允许Promises/A实现使用合理的方法“同化”不一致的实现。

您不应该-而是调用Promise.resolve(x)(Q中的Q(x))始终将任何值或外部转换为可信的promise。这比自己执行这些检查更安全、更容易。

您始终可以在测试套件中运行它:D

 类似资料:
  • 本文向大家介绍如何判断出一个js对象是否一个dom对象,包括了如何判断出一个js对象是否一个dom对象的使用技巧和注意事项,需要的朋友参考一下 我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。 要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeType属性

  • 本文向大家介绍如何判断一个对象是否为空?相关面试题,主要包含被问及如何判断一个对象是否为空?时的应答技巧和注意事项,需要的朋友参考一下 可以使用 JSON.stringify() 方法判断 还有就是使用for in 遍历该对象 3.ES6 新增的方法 Object.keys(): Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。 如果我们的对象为空,他会返回一个

  • 本文向大家介绍如何判断对象是否属于某个类?相关面试题,主要包含被问及如何判断对象是否属于某个类?时的应答技巧和注意事项,需要的朋友参考一下 obj.proto === class.prototype 可以递归去找 obj instanceof class

  • 假设您有两个相同的对象(意味着它们分别具有相同的属性和相同的值)。 你如何测试平等性? 例

  • 本文向大家介绍python判断一个对象是否可迭代的例子,包括了python判断一个对象是否可迭代的例子的使用技巧和注意事项,需要的朋友参考一下 如何判断一个对象是可迭代对象? 方法是通过collections模块的Iterable类型判断: 以上这篇python判断一个对象是否可迭代的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JavaScript 判断一个对象{}是否为空对象的简单方法,包括了JavaScript 判断一个对象{}是否为空对象的简单方法的使用技巧和注意事项,需要的朋友参考一下 做项目时遇到一个问题,判断一个对象是否为空对象,发现这样判断可以,上代码: 1. 代码1: 结果为:3 2. 代码2: 结果为:6 3. 代码3: 结果为:7 所以可以使用代码3的方法判断对象是否为空对象{}; 如果