Reactjs обещание. Все - PullRequest
       4

Reactjs обещание. Все

0 голосов
/ 02 апреля 2019

У меня возникли проблемы с разрешением studentDataPromise перед fetchLoansPromise. Мне нужно получить данные о студентах, чтобы иметь возможность получить кредиты ... есть идеи, в чем заключается моя ошибка?

В настоящее время

  1. вызывается toggleIsReady () и устанавливается в значение true
  2. вызывается fetchLoans (), но, поскольку она опирается на данные студентов, не загружается
  3. fetchStudentData () вызывается и правильно выбирает
  4. fetchClasses () вызывается и правильно выбирает
    let studentDataPromise = null;
    let fetchClassesPromise = null;
    let fetchLoansPromise = null;

    useEffect(() => {
        studentDataPromise = fetchStudentData();
    }, []);

    useEffect(() => {
        fetchClassesPromise = fetchClasses();
    }, []);

    useEffect(() => {
        fetchLoansPromise = fetchLoans();
    }, []);

    /**
     * resolves promises and toggles isReady
     * action to true
     */


    Promise.all([studentDataPromise, fetchClassesPromise])
        .then(() => fetchLoansPromise)
        .then(() => toggleIsReady())
        .catch(error => {
            throw new Error(error);
        });

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

https://stackoverflow.com/a/55502465/11119825

см. Этот пост, это теперь я решил. Спасибо всем !

0 голосов
/ 02 апреля 2019

Если я правильно понял, вы должны сделать что-то вроде этого:

    const [student, setStudent] = useState({});
    const [classes, setClasses] = useState([]);
    const [loans, setLoans] = useState([]);
    useEffect(async () => {
        const studentData = await fetchStudentData();
        const fetchClasses = await fetchClasses();
        const fetchLoans = await fetchLoans();
        await toggleIsReady();
    }, []);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...