Проблема с обещанием javascript, которая никогда не решаетсяJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Проблема с обещанием javascript, которая никогда не решается

Сообщение Гость »


Я создал два пользовательских обещания, которые идентичны, за исключением того, что они работают с разными пользовательскими данными. Оба обещания используют классы и методы Google Maps API v-3.

Странно то, что всякий раз, когда вызывается первый из них, он никогда не разрешается и всегда возвращает статус отклонения. Кроме того, даже если это не разрешится, код обещания все равно выполнит печать в консоли нескольких console.log(), которые я положил в качестве элементов управления.

Итак, эти два обещания:

var checkDeparture = новое обещание((разрешить, отклонить) => { console.log('1. Вызов CheckDeparture'); //первое управление функцией вар newDeparture = ''; вар геокодер = новый google.maps.Geocoder(); geocoder.geocode({'address': $('#startTransfer').val()}, (результаты, статус) => { console.log('2. Вызывается геокодер CheckDeparture'); //вторая функция управления if(status == google.maps.GeocoderStatus.OK) { coordPoint = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()); if(google.maps.geometry.poly.containsLocation(coordPoint, window.venicePolygon)) { console.log('3. CheckDeparture containsLocation вызван'); //управление третьей функцией newDeparture = 'Пьяццале Рома, Венеция, ВЕ, Италия'; } еще { newDeparture = $('#startTransfer').val(); } } console.log(newDeparture); //контроль результата функции разрешить (новыйОтъезд); }); ignore('Извините, произошла ошибка при проверке обещания Departure...'); }); var checkDestination = новое обещание ((разрешить, отклонить) => { console.log('1. Вызов CheckDestination'); //первое управление функцией вар newDestination = ''; вар геокодер = новый google.maps.Geocoder(); geocoder.geocode({'address': $('#endTransfer').val()}, (результаты, статус) => { console.log('2. Вызывается геокодер CheckDestination'); //вторая функция управления if(status == google.maps.GeocoderStatus.OK) { coordPoint = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()); if(google.maps.geometry.poly.containsLocation(coordPoint, window.venicePolygon)) { console.log('3. CheckDestination containsLocation вызывается'); //управление третьей функцией newDestination = 'Пьяццале Рома, Венеция, ВЕ, Италия'; } еще { newDestination = $('#endTransfer').val(); } } console.log(newDestination); //контроль результата функции разрешить (новое место назначения); }); ignore('Извините, произошла ошибка при проверке обещания Destination...'); }); И вот где их вызывают:

var CheckedDeparture = CheckDeparture; вар CheckDestination = CheckDestination; Promise.all([checkedDeparture,checkedDestination]).then(() => { console.log(checkedDeparture +checkedDestination); //контроль значений обещаний вар запрос = { происхождение: провереноОтправление, пункт назначения: провереноDestination, travelMode: google.maps.TravelMode.DRIVING, unitSystem: google.maps.UnitSystem.METRIC }; направленияService.route(запрос, (результат, статус) => { console.log('4. проверка значения источника: ' + request.origin); //четвертая функция управления console.log('5. проверка значения пункта назначения:' + request.destination); //пятый функциональный элемент управления console.log('6. DirectionsService вызван'); //шестое функциональное управление если (статус == google.maps.DirectionsStatus.OK) { //заниматься вещами } еще { направленияDisplay.setDirections({routes: []}); theMap.setCenter(window.globalCenter); } }); }).catch(e => { console.log(е); }); Я не могу понять, где на самом деле находится ошибка, особенно потому, что checkingDestination, похоже, разрешается правильно. Кроме того, поскольку checkingDeparture никогда не разрешается (но все равно выполняется), вся часть кода, связанная с .then(), не будет выполнена.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»