我正在使用http转换为使用socket.io将数据导入我的Angular 2应用程序。在示例中,我想帮助我在组件构造函数中使用api.service的私有版本。我现在需要做的就是调用api.service中定义的“get”函数(已经设置为使用socket.io)。这就是api.service中的“get”函数的样子:
public get(req: string, options: any, callback: IRequestCallback) {
// go get stuff
}
现在在我的组件中,我一直在使用看起来像这样的http get函数:
getByCategory() {
return this._http.get(this._url)
.map((response:Response) => response.json())
.catch(this._errorsHandler);
}
现在我改为使用我的api.service中的socket.io函数。正如您在顶部的代码中看到的那样,来自api.service的套接字“get”调用需要3个参数(字符串,选项和回调)。我试过这个:
getByCategory() {
return this.__socket.get(this._url, this.args, function(data) {
});
}
...但现在我意识到api.service中已经提供了URL。所以让我感到尴尬的是,这听起来很愚蠢,是我可以传递的第一个参数。我尝试传入一个空字符串作为第一个参数,但这是错误的。我可以在这里传递什么字符串,而不是网址?或者还有其他方法吗?
答案 0 :(得分:0)
首先,我对Http模块没有任何问题,所以我很好奇为什么要进行切换(不是我知道所有的用例!)
话虽如此,听起来它确实取决于socket.io如何处理底层代码 - Typescript中的可选参数(" optional")通常期望undefined
作为占位符,所以你可以尝试在这种情况下传递undefined
。