Typescript节点promisify“;应为2个参数,但得到1“;

Typescript节点promisify“;应为2个参数,但得到1“;,typescript,Typescript,我正在尝试将util.promisify与Typescript和“strict”:true一起使用在编译器选项中 node 9.7.1 typescript 2.7.2 我正在使用library firebird节点,并尝试将promisify与函数“attach”一起使用 从库中,函数的声明方式如下: type DatabaseCallback = (err: any, db: Database) => void; export function attach(options: Op

我正在尝试将util.promisify与Typescript和“strict”:true一起使用在编译器选项中

node 9.7.1
typescript 2.7.2
我正在使用library firebird节点,并尝试将promisify与函数“attach”一起使用

从库中,函数的声明方式如下:

type DatabaseCallback = (err: any, db: Database) => void;

export function attach(options: Options, callback: DatabaseCallback): void;
如果我尝试使用util.promisify

const connectionParams: libfirebird.Options = {....};

const p = util.promisify(libfirebird.attach);
this.dbHandle = await p(connectionParams);
I get error“应为2个参数,但在“p(connectionParams)”中为1。”

我也试着这样使用它

this.dbHandle = await util.promisify(libfirebird.attach)(connectionParams);
但我也犯了同样的错误

我找到的解决方案是手动构建承诺:

this.dbHandle = await new Promise<libfirebird.Database>((resolve, reject) => {
    libfirebird.attach(connectionParams, function(err, db){
        if (err) return reject(err);
        resolve(db);
    });
});
this.dbHandle=等待新承诺((解决、拒绝)=>{
附加(connectionParams,函数(err,db){
如果(错误)返回拒绝(错误);
决议(db);
});
});

typescript中的util.promisify是否存在已知错误或我遗漏了什么?

看起来您需要向p(…)传递第二个参数,其中第一个参数是选项(您已经传入),第二个是它将要使用的数据库回调?typescript中的util.promisify似乎存在问题,