Жду всех запросов Mongo с Node.js - PullRequest
0 голосов
/ 06 ноября 2019

Код ниже имеет недостаток, так как я получаю массив undefined:

let filters = [];

async function getFilters(tiers) {

    return await Promise.all(

        tiers.map(async t => {
            let id = new ObjectId(t.filter);

            filters.push(
                await conn.collection('TierScheduleFilter').find({
                    _id: id
                }).toArray(function(err, filter) {
                    if (err || !filter) {
                        reject('no filter || error');
                    }

                    return filter;
                });
            );
        });
    );
}
await getFilters(tiers);
console.log(filters); // 4 filters => [ undefined, undefined, undefined, undefined ]

Код должен получить все фильтры, но все его неопределенные значения.

1 Ответ

0 голосов
/ 06 ноября 2019

Этот подход кажется правильным:

let filters = [];
    async function getFilters(tiers) {
        return await Promise.all(
                tiers.map(async t => {
                        let id = new ObjectId(t.filter);
                        try {
                            return await conn.collection('TierScheduleFilter').findOne({ _id: id })
                        } catch (e) {
                            return e;
                        }
                }))
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...