Компонент:
Код: Выделить всё
Scheduled Events
{{ error }}
{{ nextEvent.event.name }}
test
export default {
components: { EventSnippet },
setup() {
const { error, getNextEvents, getNextEventDetails } = useSchedule(2025);
const { nextEvent } = getNextCardDetails();
return { error, nextEvent };
},
};
Код: Выделить всё
import { ref } from "vue";
import callApi from "./API/callAPI";
const useSchedule = (year) => {
const error = ref(null);
const getSchedule = async () => {
const query = {
request: "getEventId",
params: { year: year, league: "xyz" },
};
const res = await callApi(query);
return res;
};
const getNextEvents = async () => {
const nextEvents = ref(null);
const yearSchedule = await getSchedule();
const onlyFutureEvents = yearSchedule.result.filter((event) => {
return new Date(event.startDate).getTime() > new Date().getTime();
});
const arrayNextSorted = onlyFutureEvents.sort(
(event, today = new Date()) => {
const eventDate = new Date(event.date);
console.log(eventDate - today);
return eventDate - today;
}
);
nextEvents.value = arrayNextSorted;
return nextEvents;
};
const getNextEventDetails = async () => {
const nextEvent = ref(null);
try {
const nextEvents = await getNextEvents();
const nextEventid = nextEvents.value[0].eventId;
const query = {
request: "getEventDetails",
params: { league: "xyz", eventId: nextEventid },
};
const res = await callApi(query);
nextEvent.value = res;
} catch (err) {
error.value = err.message;
}
return { nextEvent };
};
return { error, getNextEvents, getNextEventDetails };
};
export default useSchedule;
- возвращает все события
Код: Выделить всё
getSchedule - возвращает все события, которые еще не произошли (я хочу повторно использовать их в другом месте) в приложении
Код: Выделить всё
getNextEvents - возвращает только следующее событие и его детали (требуется еще один вызов API).
Код: Выделить всё
getNextEventDetails
Теперь, когда я записываю значения в консоль через составную часть, все они верны. У меня такое чувство, будто я потерял себя из-за всей этой асинхронности/
Код: Выделить всё
awaitПодробнее здесь: https://stackoverflow.com/questions/798 ... e-with-ref
Мобильная версия