diff --git a/Library/js/lines-rest-api.js b/Library/js/lines-rest-api.js index d5bab6f..a867cd0 100644 --- a/Library/js/lines-rest-api.js +++ b/Library/js/lines-rest-api.js @@ -3,7 +3,7 @@ // адрес сервера const serverUrl = "http://localhost:8081"; -// обращение к серверу для получения всех типов авторов (get) +// обращение к серверу для получения списка авторов (get) export async function getAllAuthors() { const response = await fetch(`${serverUrl}/authors`); if (!response.ok) { @@ -21,6 +21,15 @@ export async function getAllCategories() { return response.json(); } +// обращение к серверу для получения списка авторов и категорий (get) +export async function getAllCategoriesAndAuthors() { + const categoriesPromise = getAllCategories(); + const authorsPromise = getAllAuthors(); + let responses = await Promise.allSettled([categoriesPromise, authorsPromise]); + responses = responses.map((response) => response.value); + return responses; +} + // обращение к серверу для получения всех записей (get) export async function getAllBooks() { const response = await fetch(`${serverUrl}/books?_expand=categories&_expand=authors`); diff --git a/Library/js/lines.js b/Library/js/lines.js index 52746fd..9e1c0bc 100644 --- a/Library/js/lines.js +++ b/Library/js/lines.js @@ -2,7 +2,7 @@ // модуль с логикой import { - addBook, deleteLine, getAllCategories, getAllAuthors, getAllBooks, getBook, updateBook, + addBook, deleteLine, getAllCategoriesAndAuthors, getAllBooks, getBook, updateBook, } from "./lines-rest-api"; import { cntrls, createOption, createTableRow, imagePlaceholder, @@ -10,13 +10,12 @@ import { // функция для заполнения списков авторов и категорий книг async function drawSelects() { - const data = await getAllCategories(); - const authors = await getAllAuthors(); + const [categories, authors] = await getAllCategoriesAndAuthors(); cntrls.categoryInput.innerHTML = ""; cntrls.authorInput.innerHTML = ""; cntrls.categoryInput.appendChild(createOption("Выберите значение", "", true)); cntrls.authorInput.appendChild(createOption("Выберите значение", "", true)); - data.forEach((category) => { + categories.forEach((category) => { cntrls.categoryInput.appendChild(createOption(category.name, category.id)); }); authors.forEach((author) => {