-1
該函數起作用,給我所需的對象,但僅在對服務器的第二個請求之後。在第一個請求,返回一個空數組,然後填充它,並在第二個請求已經發出在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
請向您的問題添加問題。澄清你的問題和你試圖解決的問題。 Ahow一些努力/ – Clijsters
我需要從Mongo獲取一些對象並將它們添加到數組中。爲了響應請求,我必須發送這個數組 – dani5