gpt4 book ai didi

node.js - 可能在 NodeJS、JXcore 等下运行的代码如何检测它是否在支持原生 ES6 Promise 的环境中运行?

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:59 27 4
gpt4 key购买 nike

例如,我安装了最新版本的官方 Joyent NodeJS,当然还安装了 Google V8 JavaScript 引擎,还安装了带有 Mozilla SpiderMonkey JavaScript 引擎的 JXcore。

前者似乎带有原生 Promises 支持,后者似乎没有。

(当然,这些并不是 NodeJS 代码可能运行的唯一两种可能的环境。

我的代码如何测试其环境以查看它是否可以使用 native Promises?

在这种情况下,如果它检测到正确的polyfill 为“native”,那就没问题了。但它不应该检测像 Q 这样的原生 promise 。 (或者如果我的说法有误,请告诉我。)

最佳答案

要直接回答您的问题,请使用它来检测 ES6 Promise 的可用性:

typeof global.Promise === 'function'

或者使用 lightweight ES6 promise polyfill而不是依赖于更大的部分不兼容的库。

使用 polyfill,您可以只使用普通的 Promise API,并且在不再需要时只需删除 require — 无需重构。

<小时/>

更长但更值得信赖的替代方案类似于 package uses :

  global.Promise && Object.prototype.toString.call(global.Promise.resolve()) === '[object Promise]')

关于node.js - 可能在 NodeJS、JXcore 等下运行的代码如何检测它是否在支持原生 ES6 Promise 的环境中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com