lab 3 Promise.allSettled()

This commit is contained in:
Zakharov_Rostislav 2023-12-04 16:13:04 +04:00
parent 39c40a8add
commit a4da7a569e
2 changed files with 13 additions and 5 deletions

View File

@ -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`);

View File

@ -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) => {