日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是 Rxjs 的 subscription

發(fā)布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 Rxjs 的 subscription 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是訂閱? Subscription 是一個對象,該對象代表一個一次性資源,通常是一個 Observable 的執(zhí)行。 Subscription 有一個重要的方法,unsubscribe,它不接受任何參數(shù),只處理訂閱持有的資源。 在之前的 RxJS 版本中,訂閱被稱為“Disposable”。

看個例子:

import { interval } from 'rxjs';const observable = interval(1000); const subscription = observable.subscribe((x) => console.log(x)); // Later: // This cancels the ongoing Observable execution which // was started by calling subscribe with an Observer.console.log('ok');const handler = () => subscription.unsubscribe(); setTimeout( handler , 10000);

這行代碼將在打印0~9 個數(shù)字后,也就是10秒后終止。

Subscription 本質(zhì)上只有一個 unsubscribe() 函數(shù)來釋放資源或取消 Observable 執(zhí)行,避免內(nèi)存泄漏。

也可以將一個 subscription 添加到另一個 subscription 里,然后同時關(guān)閉這兩個 subscription:

import { interval } from 'rxjs';const observable1 = interval(400); const observable2 = interval(300);const subscription = observable1.subscribe(x => console.log('first: ' + x)); const childSubscription = observable2.subscribe(x => console.log('second: ' + x));subscription.add(childSubscription);setTimeout(() => {// Unsubscribes BOTH subscription and childSubscriptionsubscription.unsubscribe(); }, 1000);

在 SAP Spartacus 代碼里,有時我們能看到手動新建一個新的 subscription:

原因正在于此:

將若干個 subscription 添加到同一個 subscription:

這樣,在 Component 的 ngOnDestroy 方法里,我們就能用一個 subscription,通過調(diào)用一次 unsubscribe 就能關(guān)掉所有的子訂閱了。

更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:

總結(jié)

以上是生活随笔為你收集整理的什么是 Rxjs 的 subscription的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。