Как создать другой список кнопок с подсластителем на основе возвращенного результата асинхронной функции? - PullRequest
0 голосов
/ 19 мая 2019

Я очень новичок в работе с javascript, поэтому у меня начинаются некоторые проблемы.У меня есть список «Велосипедных станций» в моей базе данных, и я создал алгоритм, который выбирает мне соседей каждой станции на основе координат долготы и широты каждой станции.То, что я пытаюсь сделать, - это создать SweetAlert с кнопками, представляющими те станции, которые при нажатии вызывают другую функцию (функцию для увеличения выбранного местоположения).

resolved.Алгоритм GetNeighbours является асинхронной функцией, и по какой-то причине я не могу получить ожидаемый результат в функции, в которой я пытаюсь создать SweetAlert.resolved

Есть идеи, что я делаю не так, когда пытаюсь динамически создать сладкое оповещение?

Вот моя GetNeighbours функция:

async function GetAllNeighboors(myLocationLat, myLocationLong,cb) {
     $.get("/Home/GetAllLocation",
        function (data, status) {
            Neightbours = new Array();
            var j = 0;
            for (var i = 0; i < data.length; i++) {
                if (distanceBetweenTwoStations(myLocationLat, myLocationLong, data[i].latitudine, data[i].longitudine,"K") <= 1 && data[i].latitudine != myLocationLat && data[i].longitudine != myLocationLong) {
                    Neightbours[j] = data[i];
                    j++;
                }
            }
            cb(Neightbours);        
        });     
}

А вот кусок кода, где я пытаюсь создать SweetAlert:

                   ]).then((result) => {
                        if (result.value) {
                             GetAllNeighboors(data.latitudine, data.longitudine, function (Neighboors) {
                        Vecini = new Array();
                        Vecini = Neighboors;
                    });
                                    for (var i = 0; i < Vecini.length; v++) {
                                        Swal.fire({
                                            html:'<button id='+Vecini[i].id+'class=btn btn-success>'+Vecini[i].name,
                                            title: 'Here is your list',
                                            backdrop: `rgba(0,0,123,0.4)`,                                            
                                        });
                                        onBeforeOpen: () => {
                                            const button = v[i].id;
                                            button.addEventListener('click',
                                                () => {
                                                    GoToLocation(Vecini[i].id);
                                                });
                                        }
                                    }
                                }
                            });

Обновление: с помощью другого сотрудника мне удалось получить результат отGetAllNeighbours функция.Я обновил код и вопрос.

Любая помощь будет высоко оценена.

...