如何在 rxjs 6 中使用 race
How to use race with rxjs 6
我有以下声明,它适用于 rxjs5.5 和 redux observable 0.x。现在,我正在使用 redux-observable v1 和 rxjs v6。我无法弄清楚如何为以下代码转换 race(因为它已被弃用)。
(action$, state$) =>
action$.pipe(
ofType(REQUEST),
switchMap(action => {
return race(
action$.pipe(
ofType(REQUEST_CANCEL),
take(1),
mapTo(
observableOf(
failure({
description: "Cancelled by user."
})
)
),
ajax(`url`).pipe(
map(response => response.response),
map(data => success(data)),
catchError(error =>
handleError(FAILURE, error)
)
)
)
);
})
),
可能是其他问题,没有发出请求。它认为种族是问题。
我错过了更新的文档,
import { ajax } from 'rxjs/ajax';
const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),
mergeMap(action => race(
ajax.getJSON(`/api/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response))
),
action$.pipe(
ofType(FETCH_USER_CANCELLED),
map(() => incrementCounter()),
take(1)
)
))
);
我有以下声明,它适用于 rxjs5.5 和 redux observable 0.x。现在,我正在使用 redux-observable v1 和 rxjs v6。我无法弄清楚如何为以下代码转换 race(因为它已被弃用)。
(action$, state$) =>
action$.pipe(
ofType(REQUEST),
switchMap(action => {
return race(
action$.pipe(
ofType(REQUEST_CANCEL),
take(1),
mapTo(
observableOf(
failure({
description: "Cancelled by user."
})
)
),
ajax(`url`).pipe(
map(response => response.response),
map(data => success(data)),
catchError(error =>
handleError(FAILURE, error)
)
)
)
);
})
),
可能是其他问题,没有发出请求。它认为种族是问题。
我错过了更新的文档,
import { ajax } from 'rxjs/ajax';
const fetchUserEpic = action$ => action$.pipe(
ofType(FETCH_USER),
mergeMap(action => race(
ajax.getJSON(`/api/users/${action.payload}`).pipe(
map(response => fetchUserFulfilled(response))
),
action$.pipe(
ofType(FETCH_USER_CANCELLED),
map(() => incrementCounter()),
take(1)
)
))
);