javascript - 升级 : get() requires key and callback arguments - no Promise?

标签 javascript node.js promise leveldb

levelup 文档说,如果在没有回调的情况下调用,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 中,但如果它已经存在,那么重写这样的功能似乎很愚蠢。

最佳答案

感谢Jaromanda XGreg Hornby以获得提示。事实上,levelup 还不包含 Promise。但与此同时,这里有一个使用 promisify 的解决方案,它现在是 Node 原生的:

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)) };

关于javascript - 升级 : get() requires key and callback arguments - no Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107612/

相关文章:

javascript - 简化 Node V8 childprocess.exec

javascript - 使用 Promises 使用 sinon stub 对函数进行测试

javascript - 在偶数监听器 block 中绑定(bind)和解除绑定(bind)

javascript - 休息请求签名

node.js - .jsx 总是在 React 项目中吗?

node.js - React-Router 5 和 Express - Catch-All 路由回退

javascript - 使用扩展运算符调用函数

javascript - Vue 中的链接 Promise 未按预期工作

javascript - 如何在 Vue 3 中使用路由器 View 制作某些组件 "keep-alive"?

javascript - 用于身份验证 token 的 Angular $http 拦截器