De acordo com o documento exhaustMap
utiliza um ResultSelector e este será removido na V8. Tentei seguir o exemplo , mas não consegui entender como refatorar meu código.
interval(5000)
.pipe(
takeWhile(() => !this.isDialogDestroyed),
exhaustMap(() => this.versService.checkStatus(myParameters))
)
.subscribe({
next: (status) => {
if (status === 'DONE') {
this.isDialogDestroyed = true;
// ... further processing - removed for simplicity
}
},
error: () => {
// Handle errors here
},
});
Como adaptar o código para ficar pronto para V8?
Como você não está usando o seletor de resultados (segundo argumento de
exhaustMap
), não há nada que você precise fazer em relação a isso para que este código seja compatível com V8.No seu exemplo você pode ver que a sugestão que eles fazem é substituir o segundo parâmetro do
switchMap
pipe amap
no resultado:Se verificarmos os documentos no
exhaustMap
operador :O segundo argumento
resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R
será removido, portanto não o utilize.Como o snippet que você colou não faz uso dele, não há nenhuma ação a ser tomada :)