1
假設你有一個express
風格處理函數是這樣的:rxjs,節點,在處理訂閱內存泄漏
(req, res, next) => {
const requestedProgramIDs = req.body.programIDs;
// assume all data is in a cache observable
cache$.filter(data => requestedProgramIDs.indexOf(data.id) >= 0)
.toArray()
.subscribe(programs => res.end(JSON.stringify(programs)))
};
我的問題是將這種訂閱泄漏內存?我擔心,如果我只是unsubscribe
在函數的結尾,那麼不能保證訂閱代碼將執行。
我的解決方案的想法如下:
- 使用
.take(1)
確保退訂 - 如果
scheduler
對於觀察到的是同步的,那麼退訂將是同步的,我可以把它釘住結束的功能。
問題:
- 我是正確的思維認購會泄漏?
- 如果,那麼你會如何建議我處理(防止)泄漏?