我正在尝试找出我通过Promise.race收到的错误。 这是我的代码:
function startPromiseRace(data) {
return Promise.race([executeFirstPromise(data), timeout()]);
}
然后保证:
function executeFirstPromise(data) {
return new Promise(function (resolve, reject) {
resolve("Promise completed");
});
}
function timeout() {
return new Promise((resolve, reject) => {
let id = setTimeout(() => {
clearTimeout(id);
reject(new Error("Timeout limit reached"))
}, 900);
});
}
我的问题是,当我调用StartPromiseRace时,它启动了promises,但它给了我错误:
Uncaught TypeError: Promise.race is not a function
我正在使用Electron 2.0.9和Bluebird 3.5.2
有没有建议?
P.S在VSCode中,我可以看到Promise.race的定义,但在运行时会显示Promise.race未定义
更新1:在控制台的运行时,除了Promise.race或Promise.any之外,我都可以使用Promise.all导致与上述相同的错误。
更新2:我正在使用npm安装节点模块Bluebird,并在bluebird.core.js内部安装了以下内容:
- bluebird构建版本3.5.2
- 已启用的功能:核心
- 功能已禁用:种族,call_get,生成器,地图,nodeify,promisify, 道具,减少,安顿,一些,使用,计时器,过滤器,任何一个,每个
在Bluebird 3.5.2中还有另一种使用Promis.race或Promis.any的方法吗?