我正在使用观察者对环回模型进行保存之前将模型数据存储在其中。但是我遇到了错误,
(节点:10760)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:已经调用了回调
以下是回调的实现
async function eventSelObserver(ctx, next) {
console.log("eventSelObserver");
if ( ! (ctx.isNewInstance) && ctx.currentInstance) {
ctx.hookState.SelhistoryData = [ctx.currentInstance.toObject()];
}
console.log("before calling next");
return next();
}
以下是注册回调的方法
obsModels.observe("before save", eventSelObserver);
这里,eventSelObserver内部的回调仅被调用一次。 错误的任何指针?
答案 0 :(得分:0)
我认为这与您处理异步性的方式有关,如果要使用异步/等待语法,则不需要传递next
。另外,您需要等待分配的值。
async function eventSelObserver(ctx) {
console.log('eventSelObserver');
if (!ctx.isNewInstance && ctx.currentInstance) {
ctx.hookState.SelhistoryData = await ctx.currentInstance.toObject();
}
return;
}
obsModels.observe('before save', await eventSelObserver);
参考:https://loopback.io/doc/en/lb3/Operation-hooks.html#using-asyncawait