levelup: get () требует ключ и аргументы обратного вызова - нет обещания?

1

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() в свои собственные обещания, но кажется глупо переписывать такие функции, если они уже есть.

  • 0
    get() requires key and callback arguments - возможно, у вас есть более старая версия библиотеки? - смотря на NPM, версия с повышением уровня до 1.3.9 - смотря на github, levelup на 2.0.0rc1 - так что я думаю, что документация может быть для следующего основного релиза
  • 0
    Хорошо знать. Я нахожусь на "level": "^1.6.0", так что, может быть, я должен просто бросить свой собственный сейчас. Я не хочу сидеть и ждать следующего релиза. Благодарю.
Показать ещё 2 комментария
Теги:
promise
leveldb

1 ответ

1

Спасибо Яроманде Х и Грегу Хорнби за советы. Действительно, 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)) };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню