Показать сообщение отдельно
  #1 (permalink)  
Старый 07.12.2020, 12:53
BBJ BBJ вне форума
Новичок на форуме
Отправить личное сообщение для BBJ Посмотреть профиль Найти все сообщения от BBJ
 
Регистрация: 07.12.2020
Сообщений: 4

Ппромисы, async/await и возврат значения
Добрый день, прошу помощи - пытаюсь разобраться в том, как использовать async-await и обработку ошибок.
У меня есть такой класс, а в нем несколько методов для получения удаленных данных. Можно или один метод запрашивать или в Promise.all сразу несколько, что по задумке удобно. А как возвращать значения и отлавливать ошибки?
class MyHelper {
  <...>

  async getBook(id: number): Promise<any> {
    let response = await fetch(this.getUrl() + 'GetBook');
    if (!response.ok) {
        const message = `An error has occurred: ${response.status} - ${response.statusText}`;
        throw new Error(message);
    }
    return await response.json();
  }

  async getApple(id: number): Promise<any> {
    <...>
  }
}


А вот в такой функции я использую этот класс-хелпер и мне надо вернуть в этой функции данные: чтобы не было then, а был await, то сделал ее async (+ try-catch для попытки отлова ошибок):
async function createData(data: number[]): Promise<any> {
  <всякие разные действия>

  let data: any;
  let serv = new MyHelper();
  try {
    data = await serv.getBook(1);
  }
  catch (e) {
    console.log(e);
    return null;
  }     

  <всякие разные действия>
  return data;
}


И теперь вызов createData, но тут мне приходит Промис, а это значит снова await или then-catch?
function fillData() {
  <...>

  let data = createData([1,2,3]);
    if (data !== null) {
      
    }
}


Надеюсь не путанно получилось объяснить) Спасибо.

Последний раз редактировалось BBJ, 07.12.2020 в 16:18.
Ответить с цитированием