【问题标题】:Angular, Ionic: RxJs Pipe with MAP does not return value in windows, but works in mac when used with httpclientAngular,Ionic:带有 MAP 的 RxJs Pipe 在 Windows 中不返回值,但在与 httpclient 一起使用时在 mac 中工作
【发布时间】:2019-07-23 11:05:39
【问题描述】:

我在我的 Angular/Ionic 项目中使用带有 Map 的 RxJs Pipe 进行网络调用,我在网络日志中得到了成功的响应,但 MAP 函数没有返回任何值

观察

然而,相同的函数在 Mac 中运行良好,但在 Windows 中,它确实被调用一次,但随后的调用将不会返回任何内容, 在下面的sn-p中,即使响应成功,控件也不会进入map值

代码

.get(`${API_HOST}/${API_URL}/${userId}`,options)
.pipe(map((profile) => {
          return profile;
        })

问题:

1) 这是一个已知的BUG吗?

2) 是否有一种解决方法或万无一失的方法可以在不使用 MAP 功能的情况下获取响应数据?

【问题讨论】:

  • 我觉得很奇怪,因为你没有订阅 observable。
  • @DaniR 你能详细说明一下

标签: javascript angular ionic-framework rxjs


【解决方案1】:

map-operator 还返回一个 Observable (https://www.learnrxjs.io/operators/transformation/map.html),所以你必须订阅它。 你可以试试:

.get(`${API_HOST}/${API_URL}/${userId}`,options)
    .pipe(map(profile => profile))
    .subscribe(profile => console.log(profile));

【讨论】:

  • 也不起作用,我返回一个 observable,因此我之前的陈述是正确的
  • 是的,你返回了一个 observable。这就是为什么你必须订阅它(上面的文档)。如果你这样做,那么下次提供更多代码。我不认为这是一个 Windows 问题,因为服务器是一个像 http-server 一样的 3rd-party-tool。但我是这个问题的错误人。
  • 是的,我看过了,我也试过你的方法,它从来没有在 1 或 2 次后订阅,所以问题是,该功能有效,但并非一直有效,但可以无缝地工作mac,喜欢相信它不是 windows 问题,但无法理解这种行为
  • 这听起来像是服务器问题。但我真的是错误的人来回答这个问题。
猜你喜欢
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 2021-06-07
  • 2019-03-17
相关资源
最近更新 更多