簡體   English   中英

如何從我的項目中使用Http.get獲取數據?

[英]how to get data using Http.get from my project?

我得到了一個包含一些用戶的ts文件:

quickstart-muster / app / mock / user.mock.ts:

import {User} from "../user";

export const USERS:User[]=[
  new User(....);
];

服務-quickstart-muster / app / services / user.service.ts:

import { Injectable } from '@angular/core';
import {Observable} from "rxjs/Observable"
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/operator/toPromise';
import {Http} from "@angular/http";
import {User} from "../user";

@Injectable()
export class UserService {

  constructor(private http:Http){}

  public loadUsers():Observable<User[]>{
    return this.http.get('../mock/user.mock.ts')
      .map(res=>res.json());
  }
}

我知道那是行不通的,它不會,我得到404錯誤,說他找不到... / mock / user.mock.ts。

我該如何運作?

您可以改為加載JSON文件,就像它來自API:

/data.json

[
    {
        "id": 1234,
        "name": "...",
        ...
    },
    ...
]

然后可以像這樣加載它:

public loadUsers(): Observable<User[]>{
  return this.http.get('data.json')
    .map(res => res.json());
}

您也可以像這樣從頭開始創建Observable

public loadUsers(): Observable<User[]> {
    return Observable.create((observer) => {
        observer.onNext(USERS);
        observer.onCompleted();
    });
}

使用Promise.resolve代替http get

public loadUsers():Observable<User[]>{
    return Promise.resolve([ new User(....);]);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM