承诺:类型为void的参数不能赋予类型T.

时间:2017-08-24 07:49:40

标签: node.js promise es6-promise typescript2.0

我上面有一个错误,但我发现我的代码没有任何问题。

write(data: T): Promise<T> {
    return new Promise((resolve, reject) => {
        this.open()
        .then((db) => {
            return db.collection(this.table);
        })
        .then((table) => {
            table.insertOne(data)
        })
        .then((result) => {
            console.log(result);
            resolve(result);
        })
        .catch((err) => {
            reject(err);
        })
    })
}

我试着将其作为

write(data: T): Promise<any>

它就像一个魅力。但是想知道,我做错了什么?有人可以指点我正确的代码吗?

谢谢

1 个答案:

答案 0 :(得分:0)

看起来您的承诺链可能会破坏:

.then((table) => {
    table.insertOne(data)
})

由于您未在此处返回值,result在下一个then中不会有值。我希望TypeScript只是警告你这个潜在的错误。