levelup:get()需要键和callback参数 – 没有Promise?
levelup文档声称get()
, put()
等将返回一个Promise如果调用没有callback: https : //github.com/Level/levelup#promises
我有以下代码:
db.get(gameName).then(JSON.parse).then(
但我的then()
函数永远不会被调用。 该代码运行时不会崩溃,但在控制台中收到以下消息:
get() requires key and callback arguments
我错过了什么吗? 也许依赖? 我愿意把get()
和put()
放在我自己的Promise中,但是如果它已经存在,重写这样的function似乎很愚蠢。
感谢Jaromanda X和Greg Hornby的提示。 的确, levelup
还没有包括Promises。 但是与此同时,这是一个使用promisify
的解决scheme,它现在是native的节点:
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)) };