我想知道以下两个代码块的行为是否相同:
使用管道(来自原始ngrx sample):
pending$ = this.store.pipe(select(fromAuth.selectLoginPagePending));
error$ = this.store.pipe(select(fromAuth.selectLoginPageError));
没有一个:
pending$ = this.store.select(fromAuth.selectLoginPagePending);
error$ = this.store.select(fromAuth.selectLoginPageError);
我已经测试了两者,但没有发现任何明显的差异。
有想法吗?
答案 0 :(得分:1)
是的,您是对的。两者
pending$ = this.store.pipe(select(fromAuth.selectLoginPagePending));
error$ = this.store.pipe(select(fromAuth.selectLoginPageError));
和
pending$ = this.store.select(fromAuth.selectLoginPagePending);
error$ = this.store.select(fromAuth.selectLoginPageError);
执行相同的功能,即获取存储状态的一部分,如selectors上的NgRX文档所述。
但是,pipe()
实用程序允许您将选择器与RxJS pipeable operators链接,例如scan()
和filter()
,从而可以执行其他操作,例如状态过渡。
答案 1 :(得分:1)
他们都做同样的事情。
在内部,store.select
函数调用select
运算符。