_Angular2
_およびNodeJS
を使用してAPIをコーディングしています。タスクのリストを取得して表示することになっているِ APIのサービスを実装しています。タスクサービスは次のとおりです。
_import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class TaskService{
constructor(private http:Http){
console.log('Task Service Initialized...');
}
getTasks(){
return this.http.get('http://localhost:3000/api/tasks')
.map(res => res.json());
}
}
_
getTask
関数(間違っている場合は修正).map()
関数は応答を受け取り、値の配列にフォーマットします。タスクサービスを使用するタスクコンポーネントは次のとおりです。
_import { Component } from '@angular/core';
import {TaskService} from '../../services/task.service';
@Component({
moduleId: module.id,
selector: 'tasks',
templateUrl: 'tasks.component.html',
})
export class TasksComponent {
constructor(private taskService:TaskService){
this.taskService.getTasks()
.subscribe(tasks =>{
console.log(tasks);
})
}
}
_
この.subscribe()
関数の機能を理解したいのですが、関連する情報が見つかりません。
.subscribe()
関数は、jQuery
のPromise.then()
、.catch()
および.finally()
メソッドに似ていますが、代わりにpromise
sを扱う Observable
sを扱います。
つまり、対象のobservable
(これはgetTasks()
)にサブスクライブし、successful
になるまで待機してから、最初に渡されたコールバック関数を実行します。あなたの場合は:
tasks => {
console.log(tasks);
}
エラー(.catch()
に類似)または完了(.finally()
に類似)で何らかのロジックを実行する場合、次のようにそのロジックをsubscribe
に渡すことができます。
observable.subscribe(
value => somethingToDoOnlyOnSuccess(value),
error => somethingToDoOnlyOnError(error),
() => somethingToDoAlways()
);
より多くの例と詳細を見つけることができます here