【JavaScript】awaitを使用しない関数でasyncを使用するメリットは?

  • 関数内で例外をthrowする場合、例外が同期的にthrowされるのではなく、rejectされる。
const func1 = async () => {
  throw new Error('error');
}

const func2 = () => {
  throw new Error('error');
}

const test1 = async (func) => {
  try {
    await func();
  } catch(e) {
    console.log('catch');
    console.log(e);
  }
}

const test2 = (func) => {
  const onSuccess = () => {
    console.log('then');
  };
  const onError = (e) => {
    console.log('catch');
    console.log(e);
  };
  func().then(onSuccess).catch(onError);
}

test1(func1); // catch節が実行される
test1(func2); // catch節が実行される

test2(func1); // catchが実行される。
test2(func2); // catchが実行されない。