MST
星途 面试题库

面试题:Node.js异步代码中常见的错误处理方式有哪些

在Node.js异步编程中,比如使用回调函数、Promise、async/await 进行异步操作时,分别阐述常见的错误处理方式,并举例说明。
41.1万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

回调函数错误处理

  1. 方式:在回调函数的第一个参数约定为错误对象。当异步操作出错时,将错误信息传递给这个参数,调用者通过判断该参数是否存在来处理错误。
  2. 示例
const fs = require('fs');
fs.readFile('nonexistentfile.txt', 'utf8', (err, data) => {
    if (err) {
        console.error('读取文件出错:', err);
        return;
    }
    console.log('文件内容:', data);
});

Promise错误处理

  1. 方式:使用.catch()方法捕获Promise链中任何一个Promise被拒绝(rejected)时抛出的错误。也可以在new Promise构造函数中通过reject传递错误。
  2. 示例
function asyncFunction() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            const shouldError = true;
            if (shouldError) {
                reject(new Error('模拟错误'));
            } else {
                resolve('操作成功');
            }
        }, 1000);
    });
}
asyncFunction()
   .then(result => console.log(result))
   .catch(err => console.error('捕获到错误:', err));

async/await错误处理

  1. 方式:使用try...catch块包裹await表达式,捕获异步操作抛出的错误。
  2. 示例
async function asyncOperation() {
    try {
        const response = await fetch('nonexistenturl');
        const data = await response.json();
        console.log(data);
    } catch (err) {
        console.error('异步操作出错:', err);
    }
}
asyncOperation();