TypeError:无法读取未定义的属性'Symbol(Symbol.iterator)' [英] TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined

查看:105
本文介绍了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)'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆