RXjs,链接长轮询请求

时间:2019-04-01 08:39:24

标签: javascript reactjs rxjs reactivex redux-observable

我有以下RXjs construction(以可观察的方式显示),该链链接长的轮询请求。目标是在请求超时时重试请求,或使用request to 1的内容。)更新ui state 2。)使用响应中的新URI开始新的更新循环

以下结构似乎无法正确发出内部事件-或在使用mergeMap而非exhaustMap时无限地发送内部事件。我在这里想念什么?

action$.pipe(
ofType(actions.LONG_POLL_CHAIN),
exhaustMap(action =>
    from(apiClient.longPoll(uri)).pipe(flatMap(response => concat(
            of(actionLongPollingSuccess(response)),
            of(actionLongPollingContinue(response)))
        ))
)

在伪代码中,预期结果应为:

while(true){
    action = actions.deduplicate().takeFirst();
    if(!apiClient.isLongPollingRunning())
    {
       result = apiClient.longPoll(action.uri)
       actions.push({ uri: result.uri}
       actions.push({ data: result.data}) //consumed by other service
    }
    else {
       actions.push({ uri : uri})
    }
}

0 个答案:

没有答案