这个问题通常在使用RxJs可观察对象的时候发生。RxJs操作符通常是惰性执行的,也就是说只有当观察者订阅时才会执行。因此,如果你在一个可观察对象之后有一些操作符,你需要记住在你最后一个操作符后面订阅它。
以下是一个示例:假设我们想在一个数组上使用RxJs的map()操作符,然后在最后使用subscribe()。要在每个map()操作符完成后打印输出,请遵循下面的步骤:
import { from } from 'rxjs';
import { map } from 'rxjs/operators';
const numbers = [1, 2, 3, 4, 5];
from(numbers)
.pipe(
map((number) => number * 2),
map((number) => number + 5)
)
.subscribe((number) => console.log(number));
在这个例子中,我们使用了from()创建一个可观察对象,然后使用两个map()操作符进行转换,最后使用subscribe()订阅输出。由于我们想在每个map()操作符完成后生成输出,我们必须在每个操作符之后订阅。因此,最后一个map()操作符之后的subscribe()操作符被订阅,以确保我们可以看到输出。