levelup:get()需要键和回调参数 - 没有Promise?

时间:2017-09-08 02:10:36

标签: javascript node.js promise leveldb

levelup docs声称如果在没有回调的情况下调用get()put()等将返回Promise: https://github.com/Level/levelup#promises

我有以下代码:

    db.get(gameName).then(JSON.parse).then(

但我的then()函数永远不会被调用。代码运行时没有崩溃,但我在控制台中收到以下消息:

get() requires key and callback arguments

我错过了什么吗?也许是依赖?我愿意将get()put()包装在我自己的Promise中,但如果它已经存在,那么重写功能似乎很愚蠢。

1 个答案:

答案 0 :(得分:1)

感谢Jaromanda XGreg Hornby提示。实际上,levelup还没有包括Promises。但与此同时,这是一个使用promisify的解决方案,它现在是节点原生的:

const dbNoPromise = levelup('./app-db');
const {promisify} = require('util');
const db = { get : promisify(dbNoPromise.get.bind(dbNoPromise)),
         put : promisify(dbNoPromise.put.bind(dbNoPromise)),
         del : promisify(dbNoPromise.del.bind(dbNoPromise)) };