我的指令有一个自定义事件,比如my-event
使用:
<div (my-event)="handle($event)">
并且用户处理如下事件:
async handle(e) {
await handleEvent(e);
}
然后我喜欢在事件由用户提供的代码处理后执行特定的操作,如上面。
目前我正在做的是done
从指令中提供一个功能:
// ...
this.myEvent.emit({ event: e, done: this.done });
}
done = () => { /* do something */ };
并让用户done
在完成事件处理后调用函数:
async handle({ event, done }) {
await handleEvent(event);
done();
}
我的问题:是否可以将done
调用部分从用户代码移动到指令,以便用户只根据需要处理事件而不用担心调用done
函数?