簡體   English   中英

如何捕獲異步函數中的 javascript 錯誤

[英]How to catch javascript errors in async functions

如何在異步函數中捕獲簡單的 js 錯誤? 在以下代碼中,函數“errorfkt”不可用。 如果我刪除函數“testfkt”前面的“async”關鍵字,我會在控制台中看到引用錯誤。 使用“async”關鍵字看不到錯誤。

document.querySelector('#btnTest').addEventListener('click', testfkt)

async function testfkt() {
  errorfkt();
  console.log('test');
}

https://codepen.io/Jochen99/pen/NWrEWgb?editors=1111

在開發過程中,我經常在異步函數中看到非常明顯的錯誤,因為瀏覽器不會抱怨。 有沒有辦法處理這個問題?

問候,喬臣

Promise 中的異常在catch方法中可用。

addEventListener('click', (event) => {
    testfkt(event).catch(error => {
        console.log(error);
    });
})

您還可以將try/catchasync / await語法一起使用:

addEventListener('click', async (event) => {
    try {
        await testfkt(event)
    } catch(error) {
        console.log(error);
    }
})

您可以在函數中使用 try catch 塊

async function testfkt() {
  try {
    await errorfkt();
    console.log('test');
  } catch(e) {
    console.log(e);
  }
}

暫無
暫無

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

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