我有:
this.selectedItem.subscribe(model => {
this.currentEditor(this.editors.find(e => e.canRender(model)));
this.currentEditor().render(model);
});
其中this.selectedItem
已有值。
订阅后是否可以立即运行回调(但保持匿名)?
答案 0 :(得分:1)
您可以在valueHasMutated
上致电this.selectedItem
,所以
this.selectedItem.valueHasMutated()
然而,这不仅会运行您的回调,还会通知其他人,例如绑定,计算等。
所以你最好有一个命名函数,并在需要时调用它,并在订阅中也使用它。
答案 1 :(得分:0)
您可以将函数提取到变量中并调用它:
var changeHandler = (model) => {
this.currentEditor(this.editors.find(e => e.canRender(model)));
this.currentEditor().render(model);
};
this.selectedItem.subscribe(changeHandler);
changeHandler();