本文介绍了TypeError:无法读取未定义的属性'Symbol(Symbol.iterator)'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当Web服务请求失败时,出现以下异常.
I get the following exception when a web service request fails.
TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
具体来说,HTTP GET返回400错误的请求.
Specifically the HTTP GET returns 400 Bad request.
在这里您可以找到所涉及的组件:
Here you can find the involved component:
@Component({
selector: 'events-list',
directives: [EventRow],
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [HTTP_PROVIDERS],
template: `
<table>
<tr *ngFor="let event of events | async" [event]="event" >
</tr>
</table>
`
})
export class EventsList implements OnInit {
events: Observable<Event[]>;
constructor(public http: Http) { }
ngOnInit(): void {
let obs;
this.events = Observable
.create((o) => {
obs = o;
obs.next();
})
.flatMap(() => {
return this.http.get('event/view');
})
.retryWhen(error => {
error.delay(3000);
})
.map((response: Response) => {
setTimeout(() => {
obs.next();
}, 10000);
return (<any>response.json()).map(item => {
return item;
});
});
}
}
有什么建议吗?
提前谢谢!
推荐答案
我认为您错过了 retryWhen
中的返回值:
I think that you missed a return in the retryWhen
:
.retryWhen(error => {
return error.delay(3000);
})
这篇关于TypeError:无法读取未定义的属性'Symbol(Symbol.iterator)'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!