TypeError:无法读取属性' Symbol(Symbol.iterator)'未定义的

时间:2016-05-24 13:19:01

标签: typescript angular rxjs

当Web服务请求失败时,我收到以下异常。

TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined

具体而言,HTTP GET返回400 Bad请求。

在这里您可以找到所涉及的组件:

@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;
                });
            });
    }
}

有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

我认为您错过了retryWhen的回复:

.retryWhen(error => {
  return error.delay(3000);
})