Angular 模拟角度2的长响应
出于教育目的,我需要在Angular 2中模拟来自服务器的长响应。我有密码Angular 模拟角度2的长响应,angular,typescript,rxjs,observable,Angular,Typescript,Rxjs,Observable,出于教育目的,我需要在Angular 2中模拟来自服务器的长响应。我有密码 getTasks() : Observable<Task[]> { return this.http.get('data/tasks.json').map(response => { return response.json(); }); } // using getTasks().subscribe(groups => { this.tasks = g
getTasks() : Observable<Task[]> {
return this.http.get('data/tasks.json').map(response => {
return response.json();
});
}
// using
getTasks().subscribe(groups => {
this.tasks = groups;
});
在Angular 2中根据这个我试过
getTasks():可观察{
返回这个.http.get('data/tasks.json').map(response=>{
返回可观测的(response.json()).delay(1000);
});
}
及
getTasks():可观察{
返回此.http.get('data/tasks.json').map(响应=>{
返回可观察的。创建((obs:Observable)=>{
下一步(response.json());
obs.complete();
).延迟(1000);
});
}
但是有TypeScript编译错误或
getTasks().subscribe
获取可观察而非任务集合。看起来我遗漏了什么。请帮助。谢谢。错误是由于类型不匹配造成的。您的gettask
方法声明返回类型可观察
,但是map方法返回的是可观察而不是数组(类型为Task[])。您只需将可观测值作为正常值返回,然后添加延迟方法来延迟可观测值的发射
getTasks() : Observable<Task[]> {
return this.http.get('data/tasks.json').map(response => {
return response.json();
})
.delay(1000);
}
getTasks():可观察{
返回此.http.get('data/tasks.json').map(响应=>{
返回response.json();
})
.延迟(1000);
}
错误是由于类型不匹配造成的。您的gettask
方法声明返回类型Observable
,但是map方法返回的是一个Observable,而不是数组(类型为Task[])。您只需正常返回Observable,然后添加延迟方法来延迟Observable发射
getTasks() : Observable<Task[]> {
return this.http.get('data/tasks.json').map(response => {
return response.json();
})
.delay(1000);
}
getTasks():可观察{
返回此.http.get('data/tasks.json').map(响应=>{
返回response.json();
})
.延迟(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() : Observable<Task[]> {
return this.http.get('data/tasks.json').map(response => {
return response.json();
})
.delay(1000);
}