首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何判断对象是否为Promise?

如何判断对象是否为Promise?
EN

Stack Overflow用户
提问于 2015-01-03 01:47:49
回答 15查看 193.6K关注 0票数 418

无论是ES6承诺,还是蓝鸟承诺,Q承诺,等等。

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

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2015-01-03 01:49:25

promise库如何决定

如果它有一个

函数-这是

仅限

使用标准promise库。

Promises/A+规范有一个概念,称为

它基本上就是“一个对象,它有一个

方法“。承诺将并且应该被同化

任何事

使用then方法。你提到的所有promise实现都是这样做的。

如果我们看一下

规格

2.3.3.3如果

是一个函数,调用它时使用x作为this,第一个参数为resolvePromise,第二个参数为rejectPromise

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

这种处理方式

ables允许promise实现进行互操作,只要它们公开符合Promises/A+的

方法。它还允许Promises/A+实现用合理的then方法“同化”不符合规范的实现。

你应该如何决定

你不应该-而是打电话给

(

在Q)中,将

始终

转换任何值或外部

能够成为一个值得信赖的承诺。这比自己执行这些检查更安全、更容易。

真的吗

需要确认吗?

你可以随时运行它

测试套件

:D

票数 424
EN

Stack Overflow用户

发布于 2015-01-04 07:02:28

检查某些内容是否为promise会使代码变得不必要地复杂,只需使用

代码语言:javascript
复制
Promise.resolve(valueOrPromiseItDoesntMatter).then(function(value) {

})
票数 240
EN

Stack Overflow用户

发布于 2015-01-03 01:53:32

代码语言:javascript
复制
if (typeof thing?.then === 'function') {
    // probably a promise
} else {
    // definitely not a promise
}
票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27746304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档