错误TS2346:提供的参数与呼叫目标的任何签名都不匹配

时间:2015-11-13 16:05:31

标签: http request typescript promise angular

我是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请求并以正确的方式承诺,但我找不到任何好的描述。

1 个答案:

答案 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

我猜这就是错误的原因