Хук обратной петли с асинхронными / обещаниями
Я пытаюсь создать асинхронный хук "перед сохранением" для Fireloop.io и Loopback 3, но сталкиваюсь с двумя проблемами: я не могу найти пример кода для асинхронных хуков И мой импорт Promise не удается скомпилировать. Вот моя попытка.
Может кто-нибудь предложить мне рабочий пример? Спасибо!
import * as Promise from 'bluebird';
import { Model } from '@mean-expert/model';
/**
* @module MyModel
* @description
**/
@Model({
hooks: {
beforeSave: { name: 'before save', type: 'operation' }
},
remotes: {
myRemote: {
returns: { arg: 'result', type: 'array' },
http: { path: '/my-remote', verb: 'get' }
}
}
})
class MyModel {
constructor(public model: any) {
}
async beforeSave(ctx: any): Promise<void> {
console.log('Invite.beforeSave: started');
return new Promise<void>((resolve, reject) => {
Model.validatesDateOf('expires'); /// will validation fail with promises?
resolve(); // OK ///
reject("my error"); // FAIL /// Will this propergate to Loopback ?
});
}
}
module.exports = MyModel;
Вот мой tsconfig.json с v2.5.3
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"typeRoots": [
"./node_modules/@types"
],
"types": [
"node",
"mocha",
"chai",
"bluebird"
]
}
}