Я новичок в JS и немного не знаю о асинхронной программе и обещаю. У меня есть проблемы в получении результата от почтового PHP, как написано в этом коде:Javascript - Используя обещание для публикации PHP, получите неопределенный результат
showModalLink = function(d, i) {
$('#myModalLabel').text(d.source.name + ' - ' + d.target.name);
$('#modalJum').text(d.jumlahlelangsama);
var lelang = d.daftarlelangsama.split(", ");
var lelangmodal = [];
var promises = [];
for (var i = 0; i < lelang.length; i++) {
querystring = "select pemenang from lelang where id = " + lelang[i];
console.log(querystring);
var queryobj = {
query: querystring
};
promises.push($.post('indikasi3modal.php', queryobj));
}
Promise.all(promises).then(function(results) {
if (results[i] == d.source.name) {
console.log("1");
lelangmodal.push(lelang[i] + " - dimenangkan oleh " + d.source.name);
console.log(lelangmodal);
}
else if (results[i] == d.target.name) {
console.log("2");
lelangmodal.push(lelang[i] + " - dimenangkan oleh " + d.target.name);
console.log(lelangmodal);
}
else {
console.log("3");
lelangmodal.push(lelang[i]);
console.log(lelangmodal);
}
$('#modalLelang').text(lelangmodal);
$('#myModal').modal('show');
});}
Я понятия не имею, почему results[i]
возвращение undefined
внутри then
функции цикла. Любая помощь (или альтернативные способы ее решения) оценивается. Благодаря!
Вы используете 'results [i]', но вы не установили 'i'. – Barmar
Возможно, у вас должен быть цикл 'for (i = 0; i
Barmar
@ Barmar Aw Я забыл об этом ... Теперь это работает. Спасибо за супербыстрый ответ, сэр :) – Rosiana