小编dur*_*rao的帖子

RXJS重试重置等待间隔

我想随着时间间隔的增加触发retrywhen(),

   socketResponse.retryWhen(attempts => {
    return attempts.zip(Observable.range(1, 4)).mergeMap(([error, i]) => {
        console.log(`[socket] Wait ${i} seconds, then retry!`);
        if (i === 4) {
            console.log(`[socket] maxReconnectAttempts ${i} reached!`);
        }
        return Observable.timer(i * 1000);
    });
});
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常。当前执行输出:

连接错误时(第一次)


  • [socket]等待1秒钟,然后重试!//等待1秒
  • [socket]等待2秒钟,然后重试!//等待2秒

连接成功


//成功连接。

连接错误时(第二次)


  • [socket] 等待3秒钟,然后重试!//等待3秒
  • [socket] 等待4秒钟,然后重试!//等待4秒

现在,我想重置套接字连接成功时的等待时间。

期望的输出:

连接错误时(第一次)


  • [socket]等待1秒钟,然后重试!//等待1秒
  • [socket]等待2秒钟,然后重试!//等待2秒

连接成功


//成功连接。

连接错误时(第二次)


  • [socket] 等待1秒钟,然后重试!//等待1秒

  • [socket] 等待2秒钟,然后重试!//等待2秒

但我不知道如何重设retrywhen()时间间隔。

javascript rxjs rxjs5 angular angular5

6
推荐指数
1
解决办法
633
查看次数

标签 统计

angular ×1

angular5 ×1

javascript ×1

rxjs ×1

rxjs5 ×1