Rx Observable创建/结构

时间:2018-01-06 07:13:08

标签: javascript rxjs observable

有谁可以解释以下两个来源之间的区别?我遇到了第一个街区,但不确定为什么它会比第二个更好。

来源1

Observable
    .of(futureDate)
    .flatMap(date => {
        const delay = date - Date.now();
        return Observable.timer(delay);
    });

来源2

const delay = futureDate - Date.now();
Observable.timer(delay);

1 个答案:

答案 0 :(得分:3)

当您认为在订阅之前没有任何事情发生时,差异就会变得明显 - 并且可以在创建可观察项之后的某个时间进行订阅。

当对第一个observable进行预订时,传递给定时器的延迟是基于当前时间 - 即订阅时间。

当订阅是第二个时,计时器的延迟将基于创建可观察量的时间 - 而不是在订阅时。