首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参考Promise.all

参考Promise.all
EN

Stack Overflow用户
提问于 2022-06-04 02:09:41
回答 1查看 43关注 0票数 1

此代码适用于:

代码语言:javascript
复制
Promise.all([Promise.resolve(1)])

但是,此代码没有:

代码语言:javascript
复制
const f = Promise.all

f([Promise.resolve(1)])

第二段代码引发以下错误:Uncaught TypeError: Promise.all called on non-object

为什么我不能将函数Promise.all赋值给一个变量并正常使用它呢?

EN

回答 1

Stack Overflow用户

发布于 2022-06-04 02:11:25

因为这就是规格要求

代码语言:javascript
复制
1. Let C be the this value.
2. Let promiseCapability be ? NewPromiseCapability(C).
3. Let promiseResolve be Completion(GetPromiseResolve(C)).
...

all函数要求它的这个值是一个构造函数,它支持允诺构造函数的参数约定。

当前的代码没有将函数作为对象的一部分调用(也就是说,f是一个独立的标识符),因此得到的this要么是全局对象,要么是undefined,这取决于您是否处于严格模式--无论是哪种方式,都没有满足上述要求。

如果你把函数绑定到允诺,它就会起作用。

代码语言:javascript
复制
const f = Promise.all.bind(Promise);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72496593

复制
相关文章

相似问题

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