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()
в свои собственные обещания, но кажется глупо переписывать такие функции, если они уже есть.
Спасибо Яроманде Х и Грегу Хорнби за советы. Действительно, 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)) };
get() requires key and callback arguments
- возможно, у вас есть более старая версия библиотеки? - смотря на NPM, версия с повышением уровня до 1.3.9 - смотря на github, levelup на 2.0.0rc1 - так что я думаю, что документация может быть для следующего основного релиза"level": "^1.6.0",
так что, может быть, я должен просто бросить свой собственный сейчас. Я не хочу сидеть и ждать следующего релиза. Благодарю.