我真的很想完整、简单地了解 Angular 中的 Observable 和 Promises。感谢有人用一个简单的例子告诉我。
最佳答案
建议阅读 http 上的 Angular 文档 link这个答案来自文档。
Angular http.get 返回一个 RxJS Observable。(HTTP 请求不需要 Observable,因为它是 1 个请求和 1 个响应) Observable 是可以使用类似数组的运算符处理的事件流。 转换为 Promise 通常是一个不错的选择。您通常要求 http.get() 获取单个数据 block 。当您收到数据时,您就完成了。调用组件可以轻松地以 Promise 的形式使用单个结果。
这是一个简单的例子: .../app/http.service.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class HttpService {
constructor(private _http: Http) { }
retrieveTasks() {
return this._http.get('/tasks').map(data=>data.json()).toPromise()
}
}
请注意,_http.get()
有 2 个链接到它的函数:.map
和 .toPromise()
。 .map
方法用于将HTTP请求返回的对象转换为json格式的对象,.toPromise
方法用于强制_http。 get()
调用返回一个 Promise 而不是 Observable。无需在基本 HTTP 请求中使用 Observable 的优势,使用 Promises 使其更加干净和简单。
关于angular - Angular 4 中 Observable 和 Promise 的简单定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45159946/