出现错误 TypeError: Promise.any 不是函数

Posted

技术标签:

【中文标题】出现错误 TypeError: Promise.any 不是函数【英文标题】:Getting error TypeError: Promise.any is not a function 【发布时间】:2020-11-17 06:31:01 【问题描述】:

我正在从以下站点学习 Promise.any。 https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Promise/any IDE 没有显示任何错误,但是在使用 yarn 命令运行时,我收到以下错误。

E:\typescript-2020-1\promise-usages-1\lib\basics1\promise-any.service.js:18                                                
        Promise.any([                                                                                                      
                ^                                                                                                                                                                              
TypeError: Promise.any is not a function                                                                                   
    at PromiseAnyService.validateAll_Type1 (E:\typescript-2020-1\promise-usages-1\lib\basics1\promise-any.service.js:18:17)
    at Object.<anonymous> (E:\typescript-2020-1\promise-usages-1\lib\test.js:35:7)                                         
    at Module._compile (internal/modules/cjs/loader.js:1137:30)                                                            
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)                                              
    at Module.load (internal/modules/cjs/loader.js:985:32)                                                                 
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)                                                       
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)                                    
    at internal/main/run_main_module.js:17:47                                                                              
 ERROR  Command failed with exit code 1.      

                                                                         

我已经编写了简单的代码来测试。请帮助我在 Typescript 类中做错了什么。

const promise1 = Promise.reject(0);
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'quick'));
const promise3 = new Promise((resolve) => setTimeout(resolve, 500, 'slow'));

const proms = [promise1, promise2, promise3];

Promise.any(proms).then((result) => console.log(result));

目前我正在使用 NodeJs 12 和 Typescript 3.8.3

【问题讨论】:

这个功能在最新的 stable chrome 中尚不可用。使用 chrome canary 版本,它会正常工作 先生,我将其编写为独立程序, 不确定节点,但您的浏览器肯定不会。看来这个确切的功能是非常新的 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… Node 还不支持。 根据 MDN 页面 - 无。这就是您使用全新功能所获得的。 【参考方案1】:

node.js 15.0.0 支持Promise.any 方法,你的node.js 版本太旧了,可以更新一下再试试。

【讨论】:

【参考方案2】:

恕我直言,最好坚持当前设置中支持的任何内容,似乎 esnext.promise 尚不存在,但是:

我正在从 Bluebird 移植一个相当大的实时代码库,而这个 npm 模块为我做了这件事(我在节点 v12.12.0 上): https://www.npmjs.com/package/promise.any

【讨论】:

以上是关于出现错误 TypeError: Promise.any 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

出现错误 - TypeError: DataTable.fnDestroy is not a function

React Native:获取请求失败并出现错误 - TypeError:网络请求失败(...)

当我使用“ useCallback”时,出现TypeError错误

VUEX Getter 在测试期间出现错误:TypeError: this.[method_name] is not a function

Uncaught (in promise) TypeError: initialData is null - 我的组件被包装在一个 div 中,但仍然出现错误

Apollo 查询失败并出现错误 - TypeError: this.props.getPostInfo is not a function