網站搜尋

javascript - 同時從 'lodash'、'rxjs'、'ramda' 導入 { map },而不影響可讀性

如何從多個導入中導入 map 或 merge 或任何其他函數?

import { map } from 'lodash'; import { map } from 'rxjs/operators'; import { map } from 'ramda';

明顯的答案是:

import { map as _map } from 'lodash'; import { map as rxMap } from 'rx

閱讀更多 →

javascript - 如何在 RxJS(或一般在反應式擴展中)實現時間過期的熱觀察者

我想用 RxJs 實現時間過期快取。這裡是一個「普通」快取的例子:

//let this represents "heavy duty job" var data = Rx.Observable.return(Math.random() * 1000).delay(2000); //and we want to cache result var cachedData = new Rx.AsyncSubject(); data.subscribe(cachedData); c

閱讀更多 →

javascript - RXJS 使用 observable 作為條件的 if

我想使用 Rx.Observable.if 來執行其中一個兩個 observables,當條件 observable 的結果為 true 或 false 時。

我想要達成的目標會看起來像這樣:

Rx.Observable.if(conditionalObservable.map(x => x.length > 0), firstObservable, secondObservable).subscribe()

如果 conditionalObservable 發送一個 next 然後以 true 值完成,應該運行 fir

閱讀更多 →

javascript - 錯誤:在 Ionic Angular 中找不到模組 "rxjs/operators"

我正在嘗試執行我的 Ionic 專案。幾天前之前還運作正常,現在無論怎麼做都無法執行,這個錯誤一直出現!我試過從 package.json 和 node_modules 移除 Rxjs,也註解了所有使用 Rxjs 的地方,但這個錯誤還是出現。我試過在 Ubuntu 16.04 搭配 Node 8.9.0 和 npm 4.5.0 時使用。我也試過同樣的方法在 Windows 裡跑,還是出現同樣的錯誤!我該怎麼解決這個問題?

答案#1

嘗試重新安裝版本為 5.5.3 或更新的 rxjs

np

閱讀更多 →

javascript - RxJS 帶優先級的去抖動

我在想這個直播時遇到困難。

我正在尋找的是類似 debounceTime 的東西,但具有優先級。

所以如果我有形狀為 { type: 'a', priority: 2 } 的事件。這些事件需要被延遲幾秒鐘處理,但不是發出最後一個事件,而是發出具有最高優先級的事件。

input stream: ------(a|1)--(b|3)---(c|2)-----------------------(a|1)----------------- output stream: -----------------------------------(b|3)---------------------(a|1)-----

閱讀更多 →

javascript - RXJS 串聯依賴的 observables 並依序執行,但同時取得每次發射以更新進度條

我正面臨一個問題,我一直在嘗試使用 RxJs 找到解決方案,但似乎找不到合適的…

  • 我有三個不同的 REST 請求,它們將依序被調用,每一個請求都需要前一個請求的回應作為參數
  • 我想實作一個進度條,隨著請求成功而增加

這是我的想法:

  • 我打算使用管道和 concatMap() 來避免巢狀訂閱,並在前一個請求完成後訂閱每個請求。

考慮這個非常簡化的版本。假

閱讀更多 →

javascript - RxJS:我如何在 Observables 中使用「if」?

假設我有兩個可觀察對象,其中一個我想要監聽其變化,但前提是另一個可觀察對象符合某個條件。我試過使用 zip,但似乎只有在 兩個 可觀察對象都發生變化時才會收到通知,而我希望的是,只要其中一個可觀察對象變化,且另一個的條件為真,就能收到通知。

我嘗試過的:

var firstState = new Rx.BehaviorSubject(undefined); var secondState = new Rx.BehaviorSubject(undefined); Rx.Observable.zip(firstState, secondState, function (firs

閱讀更多 →

javascript - 在一段時間內計算事件數量,並在 RxJS 中每秒產生一次總和

在 RxJS 中,是否有可能在一段時間內計算事件數量,並每秒輸出一次總和?我有一個持續不斷的事件流。每 1 秒,我希望獲取過去 5 分鐘窗口內的事件總數。這個想法是用來填充即時圖表。

我知道如何用傳統方式做這個,但真的很想了解如何用響應式編程來完成。

答案#1

這就是我會如何處理它。

建立一個可觀測對象,只計算接收到的事件數量,並將其作為累計總數發出(通過 scan)。建立第

閱讀更多 →

在使用 Angular 2 + Typescript 時,如何在 RxJs 中限制 mousemove 事件的觸發頻率?

我正在學習 RxJs。我使用 Angular2 rc3。以下的流可以運作,但它給我 太多的 mousemove 事件。我想用時間(節流)或其他控制流來減慢它們。我要怎麼做呢?

滑鼠移動流無節流

const mouseMove$ = Observable.fromEvent<MouseEvent>(document, 'mousemove'); mouseMove$.subscribe( x => console.log(x)); //

閱讀更多 →

typescript - 在 RxJS/Angular 中結合可管道運算子

有可能將多個可串接的運算子組合在一個函數中嗎(我找不到任何全面的資料),這樣我就可以將它串接起來,並在不同的方法中重複使用?

事情是這樣的:

public ngOnInit(): void { this.route.url .pipe( switchMap( (ids: UrlSegment[]) => /* http call */), tap(result => /* setting a variable within a service */), tap(

閱讀更多 →