function getPoster(search) {
var titlesForFunc = [];
return new Promise(function(resolve, reject) {
$.getJSON("https://www.omdbapi.com/?", {
apikey: "12687fb7",
i: search
}, function (data) {
resolve(data.Poster);
},
function() { // need this to handle possible errors and complete the Promise
reject([]);
});
});
}
Этот метод я использую в express. js, чтобы вернуть плакат mov ie, указанный при поиске параметров. Метод вызывается в следующем коде ниже
ul(class="w3-ul w3-card-4")
for row in data
li(class="w3-bar")
div(class="w3-bar-item" style="background-color:white;")
span(class="w3-large") #{row.Name}#[br]
div( class='carousel' id="div"+index)
for imdbid in row.imdbid.split(",")
script(type="text/javascript").
getPoster("!{imdbid}").then(poster => {
if (poster==undefined) {
} else {
var container = document.createElement('div');
var span = document.createElement('span');
span.setAttribute('class', 'w3-transparent close w3-button w3-small');
span.innerHTML = "×";
container.setAttribute('class','slide img-wrap');
var img = document.createElement('img');
img.setAttribute('class','w3-bar-item w3-rectangle w3-hide-small')
img.setAttribute('style', 'width:150px')
img.setAttribute('style', 'height:250px')
img.setAttribute('src', poster)
container.appendChild(span);
container.appendChild(img);
document.getElementById('div'+'!{index}').appendChild(container)
}
})
Каждый раз, когда я перезагружаю свою страницу, плакаты отображаются в порядке, отличном от того, который указан в переменной 'data' в for для l oop , Я предполагаю, что это происходит из-за некоторой асинхронной функции. Любые идеи о том, как заставить плакаты загружаться всегда в одном и том же порядке?