【问题标题】:How to return an observable from http request如何从 http 请求返回 observable
【发布时间】:2020-06-24 00:47:25
【问题描述】:

我在角度 9 的 service 中有以下请求:

getUsers(value: string, offset = 0) {
    return this.http.get<GetUsers>(`users`);
  }

这允许我订阅并获取component 中的结果,但我的service 无法获取数据。

我希望这个函数会执行请求,读取响应,然后将 observable 返回给component

我试过了

  return this.http.get<GetUsers>(`users`)
      .map(res => { 
            //do my stuff
            return res;
      });

但我有>“可观察”类型上不存在属性“地图”

我尝试过使用

.pipe(
      map(res => {
        console.log(res)
        return res;
      })
    );

但它说没有map 你的意思是Map 吗?

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:

    您正确地返回了过度服务。您收到 map 错误的原因可能是因为您没有安装 rxjs

    试试这个:

    1. npm install rxjs --save
    2. import { map } from 'rxjs/operators'; 添加到您的文件中

    【讨论】:

    • 它包含在 Angular 中,它在包中。但你可能是对的,我再次尝试 npm i
    • 你可能只需要import 语句。大多数 IDE 应该会自动检测导入,但不确定您使用的是哪一个。
    • 是的,导入丢失。谢谢
    • 您需要等待 10 分钟才能标记答案,现在可以了
    【解决方案2】:

    您的代码非常好。您只需要从预先安装在 Angular 中的“rxjs”导入“map”运算符。 只需将此行添加到组件文件的顶部即可。

    import { map } from 'rxjs/operators';
    

    import { map } from 'rxjs';
    

    现在应该可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-14
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2017-02-22
      • 2021-08-31
      • 1970-01-01
      相关资源
      最近更新 更多