Guest User

Untitled

a guest
Dec 7th, 2023
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Твой код:
  2.     boards() {
  3.         return fetch(`${this.base_url}/boards.json`)
  4.             .then((response) => response.json())
  5.             .then((data) => {
  6.                 const result = [];
  7.                 for (const board of data) {
  8.                     result.push(
  9.                         new BoardDescription(
  10.                             board.board,
  11.                             board.title,
  12.                             board.subtitle,
  13.                             board.image_limit
  14.                         )
  15.                     )
  16.                 }
  17.                 return result;
  18.             })
  19.     }
  20.  
  21. //С await/async:
  22.     async boards(){
  23.         //читаемо, просто, без вложенностей
  24.         let response = await fetch(`${this.base_url}/boards.json`)
  25.         let data = await response.json()
  26.         for (const board of data) {
  27.             result.push(
  28.                 new BoardDescription(
  29.                     board.board,
  30.                     board.title,
  31.                     board.subtitle,
  32.                     board.image_limit
  33.                 )
  34.             )
  35.         }
  36.         return result;
  37.     }
  38.  
  39. //Тоже но действительно по нормальному написанное:
  40.  
  41.     //вынесем это в отдельную функцию
  42.     async function api(path){
  43.         let response = await fetch(baseUrl + '/' + path)
  44.         //не забываем про проверку ошибок
  45.         if(!response.ok) throw new Error('network error: ' + response.status)
  46.         return response.json()
  47.     }
  48.  
  49.     async function boards(){
  50.         //всего две строчки вместо той громадины что ты понаписал:
  51.         let boards = await api('boards.json')
  52.         return boards.map(
  53.             ({board,title,subtitle,imageLimit}) => new BoardDescription(board,title,subtitle,imageLimit)
  54.         )
  55.     }
  56.  
  57.  
Advertisement
Add Comment
Please, Sign In to add comment