typescript 将承诺实施覆盖到蓝鸟,承诺

toe95027  于 2023-01-31  发布在  TypeScript
关注(0)|答案(1)|浏览(109)

我有一个场景,其中承诺将是未定义的一些远程执行的代码库。本地,它正在运行节点。远程,它运行另一个运行时,没有承诺。蓝鸟工作正常,但我想覆盖承诺的所有文件,如果它是未定义的。
比如:

import { Promise as BlueBirdPromise } from 'bluebird';

if (!Promise) {
    Promise = BlueBirdPromise;
    Promise.setScheduler((fn: any) => {
        setTimeout(fn, 0);
    });
}

上面的代码不起作用,因为Promise和BlueBirdPromise是不同的类型。我相信Promise是TS中的一个接口。
有干净的方法吗?
示例:

import { Promise as BlueBirdPromise } from 'bluebird';

BlueBirdPromise.setScheduler((fn: any) => {
    setTimeout(fn, 0);
});
// eslint-disable-next-line
Promise = BlueBirdPromise;

错误:

polyfills.ts:13:1 - error TS2741: Property '[Symbol.species]' is missing in type 'typeof Bluebird' but required in type 'PromiseConstructor'.
yvgpqqbh

yvgpqqbh1#

解决日期:

import { Promise as BlueBirdPromise } from 'bluebird';

BlueBirdPromise.setScheduler((fn: any) => {
    setTimeout(fn, 0);
});

global.Promise = <any>BlueBirdPromise;

相关问题