Я использую node.js и mongoose, чтобы создать приложение, которое поможет пользователям анализировать определенные слова в тексте. Но это не может работать синхронно. Вот мой код:
app.post("/detector/result", function(req, res) {
var result = {};
var text = req.body.paragraph;
var text2 = text.replace(/,/g, '');
var text3 = text2.replace(/\./g, '');
var textArr = text3.split(" ");
new Promise(function(resolve, reject) {
textArr.forEach(function(word) {
grewords.find({
English: word
}, function(err, greword) {
if (err) {
console.log(err);
} else {
if (!(greword.length < 1 || greword == undefined)) {
console.log(word);
console.log(result);
if (word in result) {
result[word] = result[word] + 1;
} else {
result[word] = 1;
}
}
}
});
});
resolve(result);
}).then(function(r) {
console.log(r);
res.render("detectorresult", {
grewordObj: r
});
});
});
Когда я запускаю свой код, он все еще показывает в оболочке:
{}
adversary
{}
adventitious
{ adversary: 1 }
assertive
{ adversary: 1, adventitious: 1 }
Почему {}
все еще показывается первым вместо того, чтобы показывать последним?