微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-Angular 2异常:TypeError:严格模式函数或arguments对象上的’caller’,’callee’和’arguments’属性可能

我在Angular 2中遇到问题,我知道这是一个经常发生的问题,但是我找不到解决方法.我做了一个从另一个组件调用的服务,那没问题.
问题出在服务中,我正在尝试进行http POST并获取并报错:
[异常:TypeError:在严格模式函数或Function.remoteFunction上调用它们的参数对象上,可能无法访问“ caller”,“ callee”和“ arguments”属性
error capture
complete error capture

显然,该错误是在handleErrorObservable中给出的,因为该帖子也未执行,在Chrome浏览器的“网络”标签中,我看不到对该api的任何POST调用.
这是我的服务代码.

import { Injectable } from '@angular/core';
import { Http, Response, RequestOptions } from '@angular/http';
import { Observable } from "rxjs/Observable";
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import { User } from "./user";
import { HttpHeaders } from '@angular/common/http';
import { Headers  } from '@angular/http';

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/toPromise';

 

@Injectable()
export class RegisterService {
     usersUrl: 'http://localhost:8080/TrabajoPromocion/users/';  
    constructor(private http:Http) { }
 
    addBookWithObservable( ): Observable<User> { 
        let body = JSON.stringify({   
            "fullname": "a",
            "username": "h",
            "password": "3",
            "email": "33"
        }); 
        
        let headers = new Headers({ 'Content-Type': 'application/json' });
        console.log('3');
        let options = new RequestOptions({ headers: headers });
         return this.http.post(this.usersUrl, body, options)
                       .map(this.extractData)
                       .catch(this.handleErrorObservable);             
        }
     
    private extractData(res: Response) { 
        let body = res.json();
            return body || {};
        }
    private handleErrorObservable (error: Response | any) { 
        console.error(error.message || error);
        return Observable.throw(error.message || error);
            }
    
    
}

感谢所有人,欢迎您提供任何帮助.

解决方法:

根据我所看到的,我可以假设未发送您的请求的原因是您在可观察到的任何地方都没有调用.subscribe.可观察对象只是函数,只有在调用它们之前它们才会执行.这就是订阅的作用-调用函数,然后也执行所有运算符.

在开发人员工具中看到的不是请求中的实际错误,而是向您传达的消息,即您无法查看开发人员工具中的参数,调用方或函数的被调用方.

因此,解决方案是简单地添加订阅调用(否则异步管道也可以完成此工作).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐