Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:未捕获(承诺):[object Boolean]_Javascript_Angular_Typescript_Angular Router - Fatal编程技术网

Javascript 错误:未捕获(承诺):[object Boolean]

Javascript 错误:未捕获(承诺):[object Boolean],javascript,angular,typescript,angular-router,Javascript,Angular,Typescript,Angular Router,在我制作的这个有角度的应用程序中,我试图保护我的一条路线。我认为我已经正确地实现了它,但是,当调用负面场景时,我遇到了这个错误:error error:Uncaught in promise:[object Boolean]。我也不能理解的是,当我满足允许路线的条件时,它似乎起作用了?!代码如下: 路由模块 身份验证服务 警卫服务 有人知道这里发生了什么吗?任何帮助都将不胜感激 假设您使用的版本>=7。试着替换 this.router.navigate(['/recipes']); 与 你也可

在我制作的这个有角度的应用程序中,我试图保护我的一条路线。我认为我已经正确地实现了它,但是,当调用负面场景时,我遇到了这个错误:error error:Uncaught in promise:[object Boolean]。我也不能理解的是,当我满足允许路线的条件时,它似乎起作用了?!代码如下:

路由模块

身份验证服务

警卫服务


有人知道这里发生了什么吗?任何帮助都将不胜感激

假设您使用的版本>=7。试着替换

this.router.navigate(['/recipes']);

你也可以摆脱

: Observable<boolean> | Promise<boolean> | boolean

正如typescript将能够推断出的那样。

我希望问题在gothere2案例中的else中。它不进行身份验证,并承诺返回布尔值。然而,你不会归还任何东西。在身份验证案例中,您所处的位置。我将如何修复:

              (authenticated: boolean) => {
                  if (authenticated) {
                     console.log(`got here1`)
                        return true;
                    } else {
                      console.log(`got here2`)
                        this.router.navigate(['/recipes']);
                            return false;

          }

面临完全相同的错误,但与OP的情况不同

我拒绝了一个等待语句的承诺,看起来error在拒绝后找不到被抓住的地方,并抛出了error:Uncaught in promise:[object Boolean]

将我的等待语句放在try-catch块下修复了错误

如果有人遇到相同问题,请在下面添加我的代码:

DataService.ts


我已经试过了,从我的最后得到了同样的错误,这就是我如何修复它。

正如您在屏幕截图中看到的,我不允许用户访问服务器路由。 我使用isAuthenticated方法的初始身份验证服务如下

为了防止此错误,我们需要捕获它,如下所示。

现在我没有得到任何错误。

删除类型违背了使用typescript的目的。另外,这个.router.navigate['url']@mwilson也没有什么问题,但在本例中这是不正确的。。。typescript将自动推断返回类型。。。您不必显式声明返回类型。。。在guardHey中正确的重定向方式,我已经实现了return false,它仍然抛出错误:Uncaught in promise:[object Boolean]在我的应用程序中,有什么想法吗?我会把那篇文章读一读,无论如何为帮助干杯!
this.router.navigate(['/recipes']);
return this.router.parseUrl('/recipes');
: Observable<boolean> | Promise<boolean> | boolean
              (authenticated: boolean) => {
                  if (authenticated) {
                     console.log(`got here1`)
                        return true;
                    } else {
                      console.log(`got here2`)
                        this.router.navigate(['/recipes']);
                            return false;

          }
serviceCall(): Promise<SomeEntity | HttpErrorResponse> {
    return new Promise((resolve, reject) => {
        myService.doSomeWork()
        .then(data => {
            resolve(data);
        })
        .catch(error => {
            reject(error)
        })
    })
}
try {
    await DataService.serviceCall();
} catch (error) {
    // error from the rejected promise should get caught here
    console.log(error)
}