Ho bisogno di filtrare le voci emesse da un osservabile controllando la voce su alcuni servizi web. Il normale operatore observable.filter non è adatto qui, poiché si aspetta che la funzione predicato restituisca il verdetto in modo sincrono, ma in questa situazione il verdetto può essere recuperato solo in modo asincrono.Esiste una versione "asincrona" dell'operatore filtro in RxJs?
Posso eseguire il passaggio con il seguente codice, ma mi chiedevo se ci sia un operatore migliore che posso usare per questo caso.
someObservable.flatmap(function(entry) {
return Rx.Observable.fromNodeCallback(someAsynCheckFunc)(entry).map(function(verdict) {
return {
verdict: verdict,
entry: entry
};
});
}).filter(function(obj) {
return obj.verdict === true;
}).map(function(obj) {
return obj.entry;
});
si può ottenere thte esempio di codice a un (non) lavoro di stato, qualcosa di 'copia/siamo paste'-able posso lavorare per aiutarti? –
Non penso esista come operatore nella distribuzione RxJs. Tuttavia, puoi facilmente prendere il codice sopra riportato e trasformarlo nel tuo operatore riutilizzabile 'filterAsync'. – Brandon