Ionic rxjs 管道函数在 http post 之后未被调用

Ionic rxjs pipe function not getting called after http post

我正在使用 ionic 5

当我尝试使用 post 连接到 firebase 并获取响应数据并使用 pipe 和 tap 处理响应时,它无法正常工作。日志未打印。

但是当我用 subscribe 替换管道时它工作正常并且我可以正确地看到日志。

请查看下面的工作代码和非工作代码。

有人可以帮我解决这个问题吗?感谢您的帮助。

工作代码

 return this.http.post("https://project-name.firebaseio.com/offered-places.json", {
    ...newPlace, 
    id: null
  }).subscribe(resDate => {
    console.log(resDate);
  });

代码无效

return this.http.post("https://project-name.firebaseio.com/offered-places.json", {
    ...newPlace, 
    id: null
  }).pipe(
    tap(resData => {
      console.log(resData);
    })
  );

如评论中所述,您必须调用 subscribe 方法

这是重现您的案例并提供上述解决方案的片段。

const exampleObservable1 = rxjs.of([{}]);
const exampleObservable2 = rxjs.of([{}]);
const exampleObservable3 = rxjs.of([{}]);

console.log('working example');
exampleObservable1.subscribe(resDate => {
  console.log(resDate);
});

console.log('not working example');
exampleObservable2.pipe(
  rxjs.operators.tap(resData => {
    console.log(resData);
  }))

console.log('suggestion');
exampleObservable3.pipe(
  rxjs.operators.tap(resData => {
    console.log('tap', resData);
  })).subscribe(resDate => {
  console.log('subscription', resDate);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.5/rxjs.umd.js"></script>