ObservableとPromises in Angularについて完全にそして簡単に知りたいです。誰かが簡単な例で私に電話をしてくれてありがとう。ObservableとPromise in Angular 4の簡単な定義
2
A
答えて
2
あなたは、彼は非常に簡単な方法でそれを説明し@Gunterからこの答えを見ることができます
https://stackoverflow.com/a/37365955/2708210
わずか2
観察可能
getLukeSkywalkerObservable(){
return this.http.get('http://swapi.co/api/people/1/')
.map(res => {
return res.json(); // using maps to filter data returned form the http call
}).map(data => {
return data; // using maps of maps to filter data returned form the map
}).flatMap((jedi) => this.http.get(jedi.homeworld))
.map(res => {
return res.json().name; // using flat maps to combine data returned from two observables into one
}).catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
のためのサンプルコードを追加します
約束
getLukeSkywalkerPromise(){
return this.http.get('http://swapi.co/api/people/1/').toPromise()
.then((data) => {
console.log(data); // binding the result from the promise
return data.json();
}).then((data) => {
console.log(data.name); // more like map of map but limited functionality
return data.name;
}).catch((ex) => {
console.error('Server Error'+ex);
})
}
2
ここでhttpの角度のドキュメントを通して読むことlinkこの回答はDocsからのものです。
Angular http.getはRxJS Observableを返します(1リクエストで1レスポンスなのでObservableは必要ありません) Observableは配列のような演算子で処理できるイベントのストリームです。 プロミスに変換するのが良い選択です。通常、http.get()にデータの単一のチャンクをフェッチするように依頼します。データを受け取ったら、完了です。呼び出し元のコンポーネントは、Promiseの形式で単一の結果を簡単に使用できます。 ... /アプリ/ http.service.ts _http.get()
はそれにチェーン2つの機能、.map
と.toPromise()
を持っていることを
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()
}
}
お知らせ:
は、ここで簡単な例です。 .map
メソッドは、返されたオブジェクトをHTTP要求からjson形式のオブジェクトに変換するために使用され、.toPromise
メソッドは、Observableの代わりに_http.get()
呼び出しがPromiseを返すように強制します。基本的なHTTPリクエストでObservableの利点を利用する必要はなく、Promisesでもっとクリーンでシンプルに保つことができます。
関連する問題
- 1. WebSocket in Angular 4
- 2. Observable Observable from Observable from Angular 2 in Typescript
- 3. Nested Observable in Angular 2
- 4. Angular2コールバックvs Promise/Observable
- 5. Long Polling in Angular 4
- 6. ObservableとAngular 2のngFor
- 7. http.get()はPromiseとObservableとして失敗します
- 8. Angular 2 Observable
- 9. 角度2 Observable and Promiseコールバックユニットテスト
- 10. ポップアップダイアログAngular 4 in table inisde
- 11. Ng-Bootstrap Pagination in Angular 4
- 12. Angular JS Route not working(簡単な例)
- 13. Wait to Promise Angular 2
- 14. Chromeは "Can not GET /"をAngular 4 - Observableと言います
- 15. スウィフト4デコード簡単なルートレベルのJSON値
- 16. Angular Observables vs Promise CRUDとデータのリフレッシュ
- 17. 8086システムIN/OUT簡単な質問
- 18. Angular 2 Service Observable returns undefined
- 19. SignarR in Angular 4 - エラー:ネゴシエーションリクエスト中のエラー
- 20. 非常に簡単なプログラムで未定義の参照
- 21. Promise in javascript
- 22. CanActivate in Angular 2 return undefined
- 23. Observable in Angular 2のデータを変更するには?
- 24. Angular CLI Observable Pipe
- 25. 角4 Observable returned undefined
- 26. angle 4 observable returns [オブジェクトオブジェクト]
- 27. angular 2+ Promises、Observable and async pipe
- 28. 定義指令パラメータに関する簡単なコードの混乱
- 29. Observableのフィールド値をAngular 4 Firestoreアレイで計算する方法
- 30. ユニットテストHttpClientModule in Angular 4.3:HttpTestingController.expectOne(URL)からの未定義戻り値
非常に幅広い質問ですが、より具体的な質問をすることはできますか? –
Observableであり、Promisesは角度固有ではありません。また、このhttps://stackoverflow.com/questions/37364973/angular-promise-vs-observable/37365955#37365955の可能な複製 – brijmcq