Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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
如何使用Rxjs检查可观察到的响应,并在Angular4中显示不同响应的警报?_Angular_Rxjs_Observable - Fatal编程技术网

如何使用Rxjs检查可观察到的响应,并在Angular4中显示不同响应的警报?

如何使用Rxjs检查可观察到的响应,并在Angular4中显示不同响应的警报?,angular,rxjs,observable,Angular,Rxjs,Observable,我有以下服务: return this.http.post(this.loginUrl, bodyString, options) .map((res:Response) => res.json()) .catch((error:any) => Observable.throw(error || 'Server error')); 使用函数:authbody:Object:Obse

我有以下服务:

         return this.http.post(this.loginUrl, bodyString, options)
                     .map((res:Response) => res.json())
                     .catch((error:any) => Observable.throw(error || 'Server error'));
使用函数:authbody:Object:Observable

然后我在组件中订阅:

this.loginService.auth(value).subscribe(
              result => {
                swal('Error', result, 'warning')
              },
              err => {
                  // Log errors if any
                  console.log(err);
              });

我如何处理结果的值以及在哪里?我想根据他的不同值来显示它。您不能使用if和==签入订阅。

您可以检查订阅中返回的结果的值。我假设结果是一个简单的字符串,但它实际上可以是任何东西。检查结果对象中返回的内容,并查看最合适的内容

this.loginService.auth(value).subscribe((result) => {

    if (result === 'ok') {
        // its all good
    }

    if (result === 'bad') {
        // its bad
    }

}, (err) => {
    // Log errors if any
    console.log(err);
});

这就是问题所在——响应是json或字符串。如果我用If检查结果:运算符“==”不能应用于类型“Response”和“string”。