-1
この関数は機能しますが、必要なオブジェクトを返しますが、サーバへの2回目のリクエスト後にのみ必要です。最初の要求では、空の配列を返し、それを満たし、かつ、第2の要求で、すでにあなたはリターンを忘れるNode.jsでの並列クエリ
'use strict';
const user2 = require('../models/base');
var array = [];
var i =0;
exports.getEda = email =>
new Promise((resolve,reject) => {
\t user2.count().exec(function(err, count){
var random = Math.floor(Math.random() * count);
var calories = 2500;
test(calories);
function test(calories, random) {
user2.findOne().skip(random).exec(
function (err, result) {
random = Math.floor(Math.random() * count);
var stringify = JSON.stringify(result);
var jsonContent = JSON.parse(stringify);
calories = calories - jsonContent.calories;
console.log(calories);
if (calories > 0){
test(calories, random);
}
array[i] = result;
i++;
});
}
console.log(array);
})
.then(eda => resolve(array))
.catch(err => reject({ status: 500, message: 'Internal Server Error !' }))
});
適切にコードします。 – str
あなたの質問に質問を追加してください。あなたの問題は何か、それを解決しようとしたことを明確にしてください。どのような努力をしている/ – Clijsters
私はMongoからいくつかのオブジェクトを取得し、それらを配列に追加する必要があります。この要求に応じて、私はこの配列を送る必要があります – dani5