是否有可能在Laravel刪除我添加的特定事件監聽器,而不是所有監聽器正在偵聽給定事件(這是forget($event)
所做的)?暫時收聽活動,即「unlisten」?
2
A
回答
0
這裏沒有一個簡單的方法 - 在需要相同功能時檢查Illuminate(v4.2)代碼後,我可以看到「忘記」是唯一方法,並且刪除所有偵聽器,事件。
但是,您可以使用getListeners($eventName)
獲取所有偵聽器,處理返回的數組,刪除特定的偵聽器,忘記事件,然後重新偵聽剩餘的偵聽器。非常可怕,會將你的代碼綁定到Event實現的內部結構。
否則,您可以在您的監聽器中標記「從現在開始忽略」消息。
另一個想法是在您的偵聽器之前添加一個偵聽器,並在其事件處理函數中返回false,這甚至會停止傳播!當然這會阻止所有後續用戶接收事件。如果您知道訂閱順序可能會有所幫助,但很麻煩。
這似乎是一個顯而易見的缺失功能,但可能是因爲短期進程的PHP的典型用法。我正在寫一個持續數日的工作,所以我還需要動態地添加/刪除監聽器。 Laravel對靜力學的偏好使得這很困難。
我正在考慮使用「全部重新登錄」例程,它只是忘記所有事件,並重新訂購所有從頭開始使用當前配置。
相關問題
- 1. JS - 鍵盤事件 - 聽/ UNLISTEN
- 2. GWT - 避免收聽活動
- 3. 活動收聽廣播接收器
- 4. Google地球API:收聽TourPlayer活動
- 5. 收聽活動:用戶::創建
- 6. Android從庫模塊中收聽活動
- 7. 在Angular 2中收聽活動
- 8. 暫時不可轉動的Android活動?
- 9. 傾聽活動
- 10. 暫停的活動
- 11. react-router browserHistory.listen unlisten
- 12. 活動在暫停時崩潰
- 13. HistoryRecord的活動暫停超時
- 14. 暫時隱藏活動窗口?
- 15. 當活動暫停時Runnable停止
- 16. 調用GLSurfaceView.onPause()後活動暫停超時()
- 17. 如何在進入活動「C」時暫停活動「B」
- 18. 啓動Memcached時出錯:未能收聽
- 19. 無法暫停活動?
- 20. 如何暫停活動?
- 21. 無法暫停活動 - nullpointerexception
- 22. 立即從活動
- 23. 如何收聽磨損活動發送的信息?
- 24. 如何收聽Android的聯繫人發佈活動?
- 25. 從另一個活動接收監聽器onResults()
- 26. 不能使用任何Chrome API來收聽活動
- 27. Laravel Echo重複n次收聽活動已廣播
- 28. 使用EWS API從多個人收聽日曆中的活動
- 29. 在瀏覽器窗口處於活動狀態時收聽keydown事件
- 30. 創建並聆聽活動