Я хочу вызвать функцию внутри шаблона, которая возвращает обещания, но на странице написано [Object Promise], как это исHtml

Программисты Html
Ответить
Anonymous
 Я хочу вызвать функцию внутри шаблона, которая возвращает обещания, но на странице написано [Object Promise], как это ис

Сообщение Anonymous »

здесь я вызываю fetchActivityDropDowns() внутри div, данные поступают правильно, но [обещание объекта] отображается непосредственно перед выбором типа размещения, так как можно решить проблему?По сути, я создал отдельная асинхронная функция для извлечения данных с сервера, и я также вызываю другую асинхронную функцию внутри функции ansyc, так что я получаю такую ​​​​ошибку. Я хочу решить это, как можно?
async function fetchDaywiseActivityAndAccomData(subqId, daywiseIdPK) {

if (subqId && daywiseIdPK) {

showLoader('Please Wait!', 'Fetching activities and accommodation!');

try {
const response = await $.ajax({
url: "{{ url('/quoteactivityplanner/get-daywise-act-and-accom-data') }}",
method: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: {
"subqId": subqId,
"daywiseIdPK": daywiseIdPK,
},
dataType: "json"
});

if (response.status === 'true') {

const {
mealProviders,
mealSlots,
meals,
accom_cat_list
} = response.data;
const itineraryCardData = response?.data?.quote_daywise_data[0];

const activityCount = itineraryCardData?.activities?.length || 0;
// for btn if no any activity then
const activityButton = activityCount === 0
? `

Add Activity

`
: '';

const daywiseActCard = document.querySelector('.daywise-act-block');
let actDayCard = `




Day ${itineraryCardData.day_id} - Itinerary
${new Date(itineraryCardData.day_date).toLocaleDateString('en-GB')}






Add A day Before


Add Tour's Days Before


Copy Quote's Itinerary Before

${activityButton}



Add Optional Activity










${
// Generate the activity HTML content here
itineraryCardData?.activities.map(item => `






Add Activity Before








${item.activity_name ? item.activity_name : 'NA'}



City




City Image




Activity






Activity Provider




Activity Timing


From:


To:






Kilometer








${fetchActivityDropDowns(itineraryCardData.country_id, itineraryCardData.day_id, item)}
`
).join('')

}








Choose Accommodation Type :




Hotel




Train




Flight




Own Arrangement













`;
$('.daywise-act-block').append(actDayCard);

}

} catch (error) {
Swal.fire({
icon: "error",
title: 'Oops...',
text: 'AJAX' + error,
});
}
} else {
Swal.fire({
icon: "error",
title: 'Oops...',
text: 'No data found.',
});
}
}


это вторая функция, которую я вызываю внутри другой функции
async function fetchActivityDropDowns(countryId, dayId, activityData) {

try {

// AJAX request to fetch activity dropdown data
const response = await $.ajax({
url: "{{ url('/quoteactivityplanner/getActivityDropdowns') }}",
method: "POST",
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
data: { countryId: countryId },
dataType: "json"
});

// Extracting data from the response
const { cities, cityImages, cityActivities, activityProviders, transportTypes, transportProviders, guideProviders, miscellaneous } = response.data;

// Populating the city dropdown
if (cities) {
const cityDropdown = $(`#act_city_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);

// Clear previous options and add the default option
cityDropdown.html('Select City');

// Populate the dropdown with city options
$.each(cities, function(cId, cityName) {
const option = new Option(cityName, cId, false, cId == activityData.activity_city_id);
cityDropdown.append(option);
});

// Initialize or reinitialize Select2
cityDropdown.select2({
placeholder: 'Select City',
allowClear: true,
width: '100%'
}).trigger('change');

// Listen for city selection changes
cityDropdown.on('change', function () {

const selectedCityId = $(this).val();
const selectedCityName = $(this).find(':selected').text();
$(`.act-accom-city-name-${dayId}`).html(`(${selectedCityName || 'No City updated'})`);

// Get the related activity dropdown
const activityDropdown = $(`#city_activity_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);
const cityImageDropdown = $(`#city_image_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);
const activityProviderDropdown = $(`#activity_provider_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);
const transportProviderDropdown= $(`#transport_provider_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);
const guideProviderDropdown = $(`#guide_provider_id_fk-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`);

if (!selectedCityId) {
// If no city is selected, clear and disable the activity dropdown
// activityDropdown.html('Select City Activity').prop('disabled', true);
activityDropdown.html('Select City Activity').select2().trigger('change');
cityImageDropdown.html('Select City Image').select2().trigger('change');
activityProviderDropdown.html('Select Activity Provider').select2().trigger('change');
transportProviderDropdown.html('Select Transport Provider').select2().trigger('change');
guideProviderDropdown.html('Select Guide Provider').select2().trigger('change');

} else {
// If a city is selected, enable the activity dropdown and trigger the function to populate it
// activityDropdown.prop('disabled', false);
// Call your function to populate activities for the selected city
fetchCityActivities(selectedCityId, activityDropdown, cityImageDropdown, activityProviderDropdown, transportProviderDropdown, guideProviderDropdown);
}
});
}

// Populating input fields with activity data
$(`#description-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).text(activityData.activity_description || '');
$(`#act-kilometer-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.act_kilometer);
$(`#approx-drive-hour-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.approx_drive_hour);
$(`#approx-drive-min-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.approx_drive_min);
$(`#act-start-time-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.act_start_time);
$(`#act-end-time-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.act_end_time);
$(`#transport-details-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.transport_details);
$(`#activity-notes-${dayId}-${activityData.activity_id_pk ? activityData.activity_id_pk : activityData}`).val(activityData.act_sub_description);

} catch (error) {
console.error('Error fetching activity dropdowns:', error);
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ises-but-t
Ответить

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

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

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

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

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