Добавление пары ключ-значение к объекту внутри цикла forEach - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь добавить результат для объекта, используя цикл forEach. Я вижу записи, когда я console.log результатов, но когда я пытаюсь использовать их для других частей моего кода, я получаю пустой объект.

Я получил ошибку, ранее сообщая мне, что объектИмя (результаты) не было определено. Я переместил объект за пределы функции, и теперь я просто возвращаю пустой объект, когда пытаюсь вернуть значения объекта.

Сначала я попробовал это сделать:

        let results = {};

        // Check for all videos in cache (returns [])
        const findAllVidsInCache = (videoArray) => {
            videoArray.forEach(video => {
                check(video).then(res => {
                    // resultsArray.push(res);
                    results[video] = res;
                    return results;
                });
            });
            return results;
        }

Затем япопробовал это:

        let results = {};

        // Check for all videos in cache (returns [])
        const findAllVidsInCache = (videoArray) => {
            videoArray.forEach(video => {
                check(video).then(res => {
                    // resultsArray.push(res);
                    results[video] = res;
                    return results;
                });
            });
            let values = Object.values(results);
            return values;
        }

Но я все еще продолжаю получать пустой объект, когда вызывается функция (я использую devTools для вызова функции, поэтому ничто больше не должно мешать ей).

То, что я ищу, и то, что я вижу в консоли при входе в консоль, это объект, который выглядит примерно так:

'video1': false,
'video2': false,
'video3': false,
'video4': true,
'video5': false,
...

До 12 видео.

Есть идеи, что я здесь не так делаю?

1 Ответ

0 голосов
/ 09 октября 2019

Попробуйте прочитать об обработке обещаний. return results; возвращает обещание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...