回调后返回更新对象

时间:2017-07-12 05:11:05

标签: typescript callback rxjs jhipster

我有一个Angular @Component来管理Leaflet Map对象。 Map初始化ngOnInit()方法。稍后在同一个方法中,我尝试从服务器检索当前的Membership对象,并将其存储在类开头声明的变量中......:

@Component({
    selector: 'aaa',
    templateUrl: './aaa.html'
})
export class MyComponent implements OnInit, OnDestroy {

    membership: MembershipGreenline;
    map: L.Map;

...然后将Map平移到Membership的纬度和经度:

    this.membership = this.membershipService.findCurrent().subscribe((responseWrapper: ResponseWrapper) => {
        return responseWrapper.json;
    },
        (responseWrapper: ResponseWrapper) => this.onError(responseWrapper.json())
    ).add(() => {
        this.map.panTo(new L.LatLng(this.membership.latitude, this.membership.longitude));
    });

然而,我收到一个错误:

1 errors occurred during unsubscription:  1) TypeError: _this.membership is undefined

删除add()调用会删除错误消息,这使我认为是尝试构建导致问题的LatLng对象。

“运行第一个订阅”和“完成”消息显示在日志中,因此我知道该部分没有错误。

我想要发生的是在分配this.membership后运行一些代码。

(我不认为这段代码特定于JHipster,但这就是我用来生成项目的内容)

修改

我已根据@ cartannt的评论更新了我的代码:

    this.membershipService.findCurrent().subscribe((responseWrapper: ResponseWrapper) => {
        this.membership = responseWrapper.json;
        this.map.panTo(new L.LatLng(this.membership.latitude, this.membership.longitude));
    },
        (responseWrapper: ResponseWrapper) => this.onError(responseWrapper.json())
    );

现在我正在TypeError: _this.membership is undefined致电panTo

0 个答案:

没有答案