簡體   English   中英

錯誤:未捕獲(承諾):[object Object]

[英]Error: Uncaught (in promise): [object Object]

@Injectable()
class MyErrorHandler implements ErrorHandler {

  handleError(error) {
    // exception occured in some service class method.
    console.log('Error in MyErrorhandler - %s', error);
      if(error == 'Something went wrong'){
       //do this.
     }else{
      //do this thing.
    }
  }
}

當在某個類中的方法拋出異常時,MyErrorHandler 類會將捕獲的Error in MyErrorhandler - Error: Uncaught (in promise): [object Object] Error: Something went wrong.打印為Error in MyErrorhandler - Error: Uncaught (in promise): [object Object] Error: Something went wrong.

問題 1 :為什么錯誤顯示為Error: Uncaught (in promise): [object Object]

問題 2 :由於上述消息,即使在任何情況下代碼的if(error == 'Something went wrong')的情況下,它也將始終讀取 else 部分。我該如何解決這個問題?

嘗試添加

if(error.message == 'Something went wrong'){
}

而不僅僅是錯誤。 因為錯誤是一個對象。

有必要檢查你的承諾中的回應......

你必須捕捉決心拒絕......

通常發生這種情況是因為拒絕的值不是被捕獲

例如

創造承諾...

promise= () => {
    return new Promise((resolve, reject) => {
      if (condition) {
         resolve(true);
      }else{
        reject(false);
      }
    });
}

在這里捕獲承諾中的所有可能的響應..

this.services.promise().then(
    (data) => {
       here capture your resolve
       },
    (err) => {
       here capture your resolve
    }
);

 this.services.promise()
   .then((res) => {
       console.log('response in resolve = ', )});
    ).catch((err)=> {
      console.log('response in reject = ', err)
    })

實際情況 estoy trabajando de esta manera。

`import { Injectable, ErrorHandler, Injector } from '@angular/core'; 從 './_alert.service' 導入 { AlertService };

@Injectable({ providedIn: 'root' }) 導出類 ErroresService 實現 ErrorHandler {

構造函數(私有 sv_alert:AlertService){}

handleError(err:any) { const message = err.message ? err.message: err.message.toString(); this.sv_alert.AlertaMensajeError( ${ message } ); } }`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM