亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將返回的 Observables 轉換為角度的自定義類數組

將返回的 Observables 轉換為角度的自定義類數組

HUH函數 2022-10-27 16:33:43
大家好,我將通過顯示代碼使我的問題變得非常簡單我正在使用 Json 占位符站點作為假休息 Api我有一個用戶類對象我想將返回的 Observable 轉換為自定義類對象數組。 import { Injectable } from '@angular/core';    import { HttpClient } from '@angular/common/http';    import { Observable } from 'rxjs';    import { Users } from './users.model';            @Injectable({          providedIn: 'root'        })        export class UsersService {                  private url = "https://jsonplaceholder.typicode.com";                  constructor(private http:HttpClient) {            console.log(this.getUsers());           }                          getUsers():Observable<Users[]>{            return this.http.get<Users[]>(`${this.url}/posts`);        }                }以上是我的服務    export class Users {        email:          string;        id:             number;        name:           string;        phone:          string;        username:       string;            }以上是我的課程,我沒有包含所有屬性在我的打字稿文件中,我有類似的代碼。constructor(private _usersService:UsersService) {      }  ngOnInit(): void {       this._usersService.getUsers().subscribe(data=>this.users=data);    console.log(this.users);  }現在我想要的是如何在我的自定義類對象中轉換返回的 observable?我沒有所有字段,那么如何僅映射我想要的那些字段?希望我的問題很清楚..!!
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

所以這個答案利用了從 rxjs 導入的 map() 。


在訂閱之前,我們將通過管道將 map() 函數傳遞到 observable 流中,然后將該數組中的每個元素 map() 到適合我們用戶界面的新對象中


然后我們訂閱,我們得到的數據將是一個適合我們用戶界面的數組


ngOnInit(): void {

   

    this._usersService.getUsers()

    .pipe(map(data => {

      return data.map(item => {

        const user: User = {

          name: item.name,

          email: item.email,

        }

        return user

      })

    }))

    .subscribe(data=>this.users=data);


    console.log(this.users);

  }


查看完整回答
反對 回復 2022-10-27
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號