gpt4 book ai didi

javascript - 我如何在 Angular 中使用可观察和观察者?

转载 作者:行者123 更新时间:2023-11-30 11:44:13 26 4
gpt4 key购买 nike

我来自同步编程背景,我很难理解可观察对象。

这是我的服务/提供商(Ionic 2 项目)的摘录

return this.http.get(`${this.serverApi}`)
.map(res => <Response[]>res.json());

我将从 LoginPage 订阅它。我对此有几个问题。

  1. 即使我没有这样声明,上面的代码是否会返回一个 observable/observer?

  2. 响应是 JSON。我如何对 JSON 进行一些检查/处理并执行一些操作,例如

    res.auth_token==true

    然后做

     localStorage.setItem(res.auth_token)

    我相信它应该在提供者类中完成。只是一个典型的提示/示例就很棒。

  3. 当请求到达订阅方法时,请求是否真的发生了?

  4. Creating and returning Observable from Angular 2 Service提到 Subject 和 ReplaySubject。我应该改用它们吗?

最佳答案

  1. 代码将返回一个Observable

  2. 您可以将回调主体更改为一个 block ,并根据需要添加任意多的代码

return this.http.get(`${this.serverApi}`)
.map(res => {
let x = <Response[]>res.json();
// do something with x
res.auth_token == true;
return res; // with a block body an explicit`return` is required
});
  1. 是的,调用 .subscribe() 将执行 http.get(),然后在响应到达时执行所有后续运算符。没有 .subscribe() 什么都不会发生。

注意:一些 Angular API 需要一个 Observable,在这种情况下你不能调用 subscribe() 因为 subscribe() 返回一个 订阅,而不是Observable

  1. 这取决于您要完成的目标。如果您使用 http.get(),您已经获得了一个可观察对象,并且不需要 SubjectReplaySubject 或任何其他对象可能性。

关于javascript - 我如何在 Angular 中使用可观察和观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41548235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com