async await node.js пропускает второй оператор await save mongodb

1

Я использую ожидание async в node.js ES6...

async insertIngot(body, callback) {

    console.log('*** ItemsRepository.insertIngot');

    console.log(body);

    const data = await this.getItemsTest();
    console.log('*** getItems ok');
    items = data.items;

    let item = new Ingot();

    item.ingotName = body.ingotName;
    item.formulaName = body.formulaName;
    item.items = items;

    await item.save();

    return item;
}

Первый ожидание работает, а затем он пропускает остальную часть кода и выдает ошибку:

(node: 16612) DeprecationWarning: Mongoose: mpromise (библиотека обещаний по умолчанию mongoose) устарела, вместо этого подключите свою собственную библиотеку обещаний: http://mongoosejs.com/docs/promises.html

  • 0
    К вашему сведению, async / await не является частью ES6.
Теги:
ecmascript-2017
async.js

1 ответ

2
Лучший ответ

В мангусте вам нужно определить тип обещания, которое вы хотели бы использовать. Вы используете встроенные обещания es6, поэтому, чтобы сказать mongoose, вам нужно сделать это:

mongoose.Promise = global.Promise;

Вот документ: http://mongoosejs.com/docs/promises.html#plugging-in-your-own-promises-library

  • 0
    ИДК, почему он пропускает остальную часть кода так. Это просто предупреждение. Идея?
  • 0
    Спасибо, попробую это.
Показать ещё 5 комментариев

Ещё вопросы

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