繁体   English   中英

ionic3我如何在ErrorHandlerService中注入服务/提供者

[英]ionic3 how can i inject service/provider inside ErrorHandlerService


=======

当我将ConfigService注入ErrorHandlerService来呈现敬酒时,给我一个错误:errorHandlerService.ts:36它发生:错误:未捕获(承诺):TypeError:无法读取未定义的属性'_appLog'

 export class ErrorHandlerService implements ErrorHandler {

      private _appLog: ConfigService;
      constructor (private injector: Injector) {
        setTimeout(() => {
          this._appLog = injector.get(ConfigService);
        }, 0);
      }
      handleError(error: Error | HttpErrorResponse) {

          if (error instanceof HttpErrorResponse) {
              if (!navigator.onLine) {
                console.log('Please, check your internet connection');

              } else if(error.status === 401){
                console.log(error.message);
                this._appLog.presentToast();

              }else {
                console.log(error.message);
              }
            } else {
              console.log('Not Http Error');
          }
          // Log the error anyway
          console.error('It happens: ', error);
      }  
    }


    @Injectable()
    export class ConfigService {

        constructor(private storage: Storage){
        }

        presentToast(){
            console.log("test");
        }
    }


 getUsers(){
        let promise = new Promise((resolve, reject) => {
            let apiURL = `${this.configS.apiRootV1}/users`;
            this.http.get(apiURL).toPromise()
                .then((res) => {

                    console.log(res);
                    resolve(res);

                }).catch(this.errorHandlerService.handleError);
        });
        return promise;
    }

在handleError函数'this'中未定义。 尝试使用'bind'发送'this'的值:

.catch(this.errorHandlerService.handleError.bind(this.errorHandlerService));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM