Я использую loopback 3
для создания службы REST и хочу использовать async / await вместо использования обратных вызовов. Поэтому вместо этого:
MyModel.myFunction = (callback) => {
MyModel.find({where: {id: 2}}, (e, data) => {
if (e) return callback(e);
callback(null, data);
});
};
Я бы предпочел сделать:
MyModel.myFunction = async (callback) => {
try {
const data = await MyModel.find({where: {id: 2}});
callback(null, data);
} catch (e) {
console.error(e);
callback(e);
}
};
Подход обратного вызова работает отлично - async / await, однако, выдает множество ошибок:
UnhandledPromiseRejectionWarning: Error: Callback was already called.
UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
Что не так? Я не могу решить эту проблему.