1. ホーム
  2. javascript

[解決済み] .subscribe()関数は何をするのですか?

2022-03-06 05:47:44

質問

でAPIをコーディングしています。 Angular2NodeJS 私は、タスクのリストを取得し、それを表示することになっている私のِ 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() 関数は Promise.then() , .catch().finally() メソッドを jQuery を処理するのではなく promise を処理します。 Observable s.

つまり、自分自身をサブスクライブして observable を使用します。 getTasks() になるまで待ちます。 successful を実行し、最初に渡されたコールバック関数を実行します。

tasks => {
    console.log(tasks);
} 

エラー時に何らかのロジックを実行させたい場合( .catch() のような)または完全な) .finally() ) に渡すことができます。 subscribe のようにします。

observable.subscribe(
  value => somethingToDoOnlyOnSuccess(value),
  error => somethingToDoOnlyOnError(error),
  () => somethingToDoAlways()
);

その他の例と詳細については、こちらをご覧ください。 こちら