1
我有對某些事件再次在函數內部可觀察到的訂閱:淘汰賽觀察到的認購觸發多次
ko.computed(function() {
alert('computed fired');
self.obs2.subscribe(function() {
alert('subscribe fired');
});
return self.obs1();
});
我注意到,該功能運行時,不執行認購裏面的代碼,但是當訂閱最終會激發,它內部的代碼會像重複函數在觸發前一樣運行多次。
它太複雜的的jsfiddle重現,所以我選定了一個簡單的,但使用類似的例子訂閱內computed
觀察到:
http://jsfiddle.net/norbiu/7hGNb/
- 點擊「編輯OBS2」幾次數會導致警報每次觸發
- 點擊'編輯Obs1'幾次將導致第一個警報觸發,而不是訂閱內部的一個
- 點擊'Edit Obs2'一次會導致訂閱中的警報多次運行。
有沒有辦法讓訂閱只運行一次而不必在重複之外移動它?
您的示例過於簡化。爲什麼你需要在計算機內部訂閱?你想達到什麼目的?因爲唯一的解決方案是將訂閱移動到您不想執行的計算之外...... – nemesv