是否在Angular 2应用程序中使用Observable

时间:2017-02-07 18:59:58

标签: angular socket.io observable

我试图通过我的Angular 2应用程序中的socket.io接收一些表格数据。最初我使用observables来处理这个问题 - 这是按预期工作的。然而,在切换到套接字时,这证明有些问题。但是现在我想知道在这种情况下是否真的需要使用一个observable。我的假设是,当您有定期更新的数据时,最好使用observable。但在我的情况下,我引入了相当静态的基本表格数据。在这种情况下使用observable是否必要?这有点矫枉过正吗?

当我使用http并将其包装在一个observable中时,这就是我的代码:

getByCategory() {
    return this._http.get(this._url)
        .map((response:Response) => response.json())
        .catch(this._errorsHandler);
}
_errorsHandler(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || 'Server error');
}

然后,在我的组件中,我订阅了这样的内容:

   this.contactService.getByCategory()
        .subscribe(resRecordsData => this.records = resRecordsData,
        responseRecordsError => this.errorMsg = responseRecordsError);

这是我的服务代码在不使用observable的情况下使用套接字的样子。如果有什么东西看起来,或者可以用可观察的东西写出来,我可以听到这个:

getByCategory() {
    console.log('getByCategory was just called on socket...');
    let socket = io.connect(this._url, this.args);
    socket.on('clients.getByCategory', function (data) {
        if (data === isNullOrUndefined) {
            console.log('No data to show!');
            return;
        }
        console.log(data);
        return data;
    });
}

0 个答案:

没有答案