Angular 可观察到的行为

Angular 可观察到的行为,angular,rxjs,observable,ngrx,angular-ngrx-data,Angular,Rxjs,Observable,Ngrx,Angular Ngrx Data,我正在努力解决一些我认为很直截了当的问题。基本上我有一个angular 8应用程序,正在使用ngrx。我的所有CRUD操作都正常工作,但我希望在成功完成并添加或更新后导航到url 当我一步一步地完成代码时,除了触发从可观察对象返回时的更改外,其他一切都正常工作,我尝试了两种不同的方法,两种方法似乎都是从可观察对象返回的,但不会完成下一步 firestore和我的ngrx和ngrx/数据存储中的实际更新或添加记录工作正常。唯一不工作的是我在完成这些活动后提供的指令 为了简化,我刚刚添加了一个控制台

我正在努力解决一些我认为很直截了当的问题。基本上我有一个angular 8应用程序,正在使用ngrx。我的所有CRUD操作都正常工作,但我希望在成功完成并添加或更新后导航到url

当我一步一步地完成代码时,除了触发从可观察对象返回时的更改外,其他一切都正常工作,我尝试了两种不同的方法,两种方法似乎都是从可观察对象返回的,但不会完成下一步

firestore和我的ngrx和ngrx/数据存储中的实际更新或添加记录工作正常。唯一不工作的是我在完成这些活动后提供的指令

为了简化,我刚刚添加了一个控制台日志语句,而不是路由操作。调试时,我返回到subscribe或tap操作符,但它似乎没有在该方法中执行指令,也没有返回任何错误

产品组件

第一种方法

this._entityService.add(entity).subscribe(() => console.log('added record'));
第二种方法

this._entityService.add(entity).pipe(
            tap(() => {
                console.log('added record');
            })
        );
实体服务

add(entity): Observable<any> {
        return Observable.create(observer =>
            this.firestoreService.createDoc(`products/`, entity)
        );
    }
add(实体):可观察{
返回可观察的。创建(观察者=>
this.firestoreService.createDoc(`products/`,entity)
);
}
试试这个

this._entityService.add(entity).subscribe((response: any) => {
  console.log(response)
});

嘿,亚历克斯,这很有魅力。非常感谢。以前从未理解过行为主题。Santosh仍然没有执行console.log,不过还是感谢您的建议