Javascript 异步/等待和承诺的错误处理,n²;射中你自己脚上的方法

Javascript 异步/等待和承诺的错误处理,n²;射中你自己脚上的方法,javascript,Javascript,如何使用此代码在同一函数中发送不同的错误: function fails3() { return new Promise((resolve, reject) => { setTimeout(function() { throw new Error(); }, 100); }); } 您可以使用“拒绝”并传递您想要传递的内容: const myError = { error1: 'Error found', e

如何使用此代码在同一函数中发送不同的错误:

function fails3() {
    return new Promise((resolve, reject) => {
        setTimeout(function() {
            throw new Error();
        }, 100);
    });
}

您可以使用“拒绝”并传递您想要传递的内容:

const myError = {
  error1: 'Error found',
  error2: 'Timeout Reached'
}

function fails3() {
    return new Promise((resolve, reject) => {
        setTimeout(function() {
            reject(myError);
        }, 100);
    });
}
一旦承诺被拒绝,因为已达到超时,将抛出错误,您可以通过以下方式捕获它:

function myFunction() {
  fails3()
    .catch((error) => console.log(error.error1)); // Handle error 
}
或者如果您喜欢(谁不喜欢)异步/等待

async function myFunction() {
  try {
    await fails3();
  } catch(e) {
    console.log(e.error2);  // Handle error
  }
}

将错误对象传递给
reject
函数以拒绝承诺。不确定这是否是一个选项,但您可以创建自己类型的错误,其中包含您想要的任何内容