2017-12-27 33 views
1

教育目的でサーバーから長い応答を角度2でシミュレートする必要があります。私はコードを持っています長い応答を角度2でシミュレートする

getTasks() : Observable<Task[]> { 
    return this.http.get('data/tasks.json').map(response => { 
     return response.json(); 
    }); 
} 

// using 
getTasks().subscribe(groups => { 
    this.tasks = groups; 
}); 

そして少なくとも1秒間はサーバの応答が必要です。角度1.5で私は

getTasks() : Observable<Task[]> { 
    return this.http.get('data/tasks.json').map(response => {    
     return Observable.of(response.json()).delay(1000); 
    }); 
} 

getTasks() : Observable<Task[]> { 
    return this.http.get('data/tasks.json').map(response => { 
     return Observable.create((obs: Observable<Task[]>) => { 
      obs.next(response.json()); 
      obs.complete(); 
     ).delay(1000);   
    }); 
} 

を試みたが、活字体のコンパイルエラーまたはgetTasks().subscribe取得し、観測を持っているこのpostによると、このように角度2で

this.getTasks = function() { 
    return $http.get("data/tasks.json").then(function (response) { 
     return $timeout(function() { 
      return response.data; 
     }, 1000); 
    }; 
} 

をこれをしましたタスクの収集ではありません。私は何かを逃したように見えます。助けてください。ありがとうございました。

答えて

4

エラーは型の不一致が原因です。 getTasksメソッドは、タイプObservable<Task[]>を返すように指定されていますが、マップメソッドは配列(Task [])タイプの代わりにobservableを返しています。通常のように観測可能なものを戻すだけで、観測可能な放射を遅らせるために遅延方法を追加する必要があります。

getTasks() : Observable<Task[]> { 
    return this.http.get('data/tasks.json').map(response => { 
     return response.json(); 
    }) 
    .delay(1000); 
} 
+0

非常にありがとうございます。 –

関連する問題