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中,但如果它已经存在,那么重写功能似乎很愚蠢。
答案 0 :(得分:1)
感谢Jaromanda X和Greg 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)) };