Javascript 此增量重试回退代码如何工作?

Javascript 此增量重试回退代码如何工作?,javascript,rxjs,observable,Javascript,Rxjs,Observable,资料来源: 所以:retryWhen接受一个接受错误的函数,并返回一个表示何时重试的可观察值 zip获取n个观察值并将其交错,而flatmap是一个一元绑定,将一个观察值转换为一个新的观察值。我的问题是,在这个例子中,为什么zip将箭头函数而不是可观察函数作为其第二个参数?下划线语法从何而来?我猜想它的意思是“忽略第一个参数的值”,但它是从哪里来的呢?它是作为一个参数传递给zip,所以我只能假设它是一个可观察的 在本例中,为什么zip将箭头函数而不是可观察函数作为其第二个参数 它被称为投影函数,

资料来源:

所以:retryWhen接受一个接受错误的函数,并返回一个表示何时重试的可观察值

zip获取n个观察值并将其交错,而flatmap是一个一元绑定,将一个观察值转换为一个新的观察值。我的问题是,在这个例子中,为什么zip将箭头函数而不是可观察函数作为其第二个参数?下划线语法从何而来?我猜想它的意思是“忽略第一个参数的值”,但它是从哪里来的呢?它是作为一个参数传递给
zip
,所以我只能假设它是一个可观察的

在本例中,为什么zip将箭头函数而不是可观察函数作为其第二个参数

它被称为投影函数,您可以在其中转换从zip接收的值

它(下划线)来自哪里

\
是可观察的
尝试发出的值,在本例中被忽略(
\
是被忽略参数的约定)

你基本上是这样做的:

var source = get('url').retryWhen(
   attempts =>
    attempts
      .zip(Observable.range(1, 3), (_, i) => i)
      .flatMap(i => {
        console.log('delay retry by ' + i + ' second(s)');
        return Rx.Observable.timer(i * 1000);
      });
);
在本例中,为什么zip将箭头函数而不是可观察函数作为其第二个参数

它被称为投影函数,您可以在其中转换从zip接收的值

它(下划线)来自哪里

\
是可观察的
尝试发出的值,在本例中被忽略(
\
是被忽略参数的约定)

你基本上是这样做的:

var source = get('url').retryWhen(
   attempts =>
    attempts
      .zip(Observable.range(1, 3), (_, i) => i)
      .flatMap(i => {
        console.log('delay retry by ' + i + ' second(s)');
        return Rx.Observable.timer(i * 1000);
      });
);

谢谢你的澄清!你能给我指一下这方面的文档吗?不幸的是,他们正在更改文档,所以你现在找不到太多。我们得等一会儿。谢谢你的澄清!你能给我指一下这方面的文档吗?不幸的是,他们正在更改文档,所以你现在找不到太多。我们得等一会儿。