角度信号(和导出的计算)是否有可能忽略一些快速的值变化?我有 websocket 并且来自 ws 的每条消息都被写入信号中,但在一瞬间可能会出现一百多条消息,并且信号或效果不会对这么多消息做出反应和/或对每条消息做出反应,比如说第 20 条消息。我不确定,但安。 v18 还可以,但 v19 发生了巨大的变化。 有人遇到这个问题吗? 谢谢您的回复或建议
this.__webSocket.onmessage = (event: MessageEvent) => {
try {
const {deserializer} = this.__config;
deserializer && this.__messagesSg.set(deserializer(event)); // <-- this line
undefined !== this.__errorSg() && this.__errorSg.set(undefined);
} catch (error: unknown) {
void Promise.resolve().then(() => {
this.__errorSg.set(error);
});
}
};
在捆绑信号更改之后,如果中间有多个更新,效果会延迟运行。
这更高效,因为我们很少需要调用触发器来进行信号的中间更新。
效果不会与集合同步执行(请参阅下面有关无故障执行的部分),而是由框架进行调度和解析。影响的确切时间未指定。
如果您觉得这种行为不合适。直接在
set
方法之后调用效果回调,这应该实现相同的行为。
someCallback() {
this.someSignal.set([ .... large array ]);
// execute effect logic below.
}