постеры, загруженные из omdb api, показываются в разном порядке каждый раз, когда я вспоминаю функцию - PullRequest
0 голосов
/ 28 февраля 2020
                            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 , Я предполагаю, что это происходит из-за некоторой асинхронной функции. Любые идеи о том, как заставить плакаты загружаться всегда в одном и том же порядке?

...