我是Typescript和Angular2的新手,我尝试在http get请求中创建承诺但下面的代码(确切return this.http.get(url)
行)给出了错误:
error TS2346: Supplied parameters do not match any signature of call target.
在我的服务中,我有方法isLoggedIn
isLoggedIn(): Promise<Object> {
return this.http.get('/some/path')
.map((res: Response) => res.json())
.toPromise();
}
然后我想在我的组件中使用它,如下所示:
onInit() {
this.login.isLoggedIn()
.then((data: any) => {
if (data.hasOwnProperty('status') && data.status === 401) {
this.router.navigate(['/Login']);
} else {
this.router.navigate(['/Home'])
}
});
}
我正在寻找如何使用http请求并以正确的方式承诺,但我找不到任何好的描述。
答案 0 :(得分:0)
快速浏览一下Angular来源:
toPromise
显示Observable<any>
方法应该收到toPromise()
(您的电话是:Checking for program mpic++ :
/Users/dg813/Downloads/XMDS.app/Contents/usr/bin/mpic++
Checking for 'g++' (c++ compiler) : /Users/dg813/Downloads/XMDS.app/Contents/usr/bin/mpic++
Checking whether the compiler works : The compiler doesn't seem to work
)
我猜这就是错误的原因