GraphQL resolver - возвращает мою функцию после выполнения обещания - PullRequest
0 голосов
/ 26 августа 2018

Я делаю запрос к серверу, чтобы получить некоторые значения и поместить их в массив

Мой сервер GraphQL возвращает мне массив до завершения процесса, поэтому возвращает пустой массив.Вот воспроизведение двух методов, которые я использую:

1-

  var array= [];
        var auths= authModel.find({}).exec()
        .then(res => {

            res.map(el =>{ 
                array.push(el.ip)
            })
        }).then(() => array)

console.log(auths) // object Promise
console.log(array) // []

2-

  const auths= authModel.find().exec();
            if(!auths){ 
                throw new Error("Error while fetching users...")
            }
            console.log("auths:", auths) //  Promise { <pending> }
            return auths // on graphiql > "auths": { "ip": null }

Что происходит не так?Как заставить мой элемент вернуться, когда обещание выполнено?

Любой намек был бы великолепен, спасибо

1 Ответ

0 голосов
/ 26 августа 2018

Если вы запускаете что-то, что возвращает обещание, на это значение можно ссылаться в следующих скобках, например:

.then ((data) => data)

Возвращает данные, полученные изобещание.

Если вы хотите что-то сделать локально с возвращенными данными, например, присвоить это локальной переменной, вы можете сделать это в рамках функции then.

Альтернативно, если вам просто нужно вернутьданные родительской функции, которая вызвала эту функцию преобразователя, а затем просто добавьте оператор return в начало оператора authmodel.find.

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