簡體   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