Как «дождаться» обратного звонка, чтобы вернуться?

При использовании простого обратного вызова, такого как в примере ниже:

test() {
  api.on( 'someEvent', function( response ) {
    return response;
  });
}

Как можно изменить функцию для использования async / await? В частности, предполагая, что someEvent гарантированно будет вызываться один раз и только один раз, я бы хотел, чтобы функциональный тест был асинхронной функцией, которая не возвращается до тех пор, пока не будет выполнен обратный вызов, такой как:

async test() {
  return await api.on( 'someEvent' );
}

Ответы на вопрос(3)

Ваш ответ на вопрос