1
我總是發現直接進入示例更容易。PubSub/Observer模式中的排隊事件
object.on('eventone', function() {
console.log('eventone - listener one');
object.trigger('eventtwo');
});
object.on('eventone', function() {
console.log('eventone - listener two');
});
object.on('eventtwo', function() {
console.log('eventtwo');
});
object.trigger('eventone');
在大多數PubSub的實現,這將導致以下日誌順序:
- eventone - 監聽一個
- eventtwo
- eventone - 監聽器2
在過去,這已經提出了這個序列的語義問題。通常開發人員會認爲'eventone'的所有聽衆在'eventtwo'開始之前已經開除,這可能會導致序列邏輯錯誤進一步向下。一個更明智的日誌順序很可能是:
- eventone - 監聽一個
- eventone - 監聽器2
- eventtwo
所以我想的問題是 - 爲什麼大多數的實現不遵循事件排隊?使用它有什麼可能的影響,而不是。
乾杯!