Как в функции async сделать «reject» по таймауту?

Всем привет. Живой пример через промис:
const func = () => {
    return new Promise((resolve, reject)=>{
        let key = setTimeout(reject, 30000, 'Promise timeout');
        // Какие-то действия асинхронные для получения результата промиса
        removeTimeout(key);
        resolve(data);
    });
};


Теперь предположим ест ьтакая же ситуация, но описание идет через async function
Как можно реализовать подобное в конструкции async?
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
@vshvydky Автор вопроса
Сам нашел, переписываю в async стиле:
conf func = async function () {
  try {
    setTimeout((message)=>{
      throw new Error(message);
    } , 30000, 'Promise timeout');
    // наш асинхронный запрос с использованием await 
    return result;
  } catch (e) {
    // что-то выполняем
     return await Promise.reject(e);
    // Альтернативный вариант Дмитрия:
    throw e;
  } 
};

func().tnen(console.log).catch(console.error);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы