نیما - ش
4 سال پیش توسط نیما - ش مطرح شد
1 پاسخ

پیاده سازی async و await در ایجکس

دوستان سلام،
من در حال نوشتن یک پلاگین گالری تصاویر هستم که یکسری داده رو از طریق ایجکس میفرستم به یک فایل پی اچی پی ، ولی چون تعداد درخواست ها بالا هست باید منتظر جواب فایل پی اچ پی باشم ولی این باعث میشه که کدهای بعدی جاوا اسکریپت من اجرا بشه و منتظر جواب نمونه ، کد من بصورت زیر هست

                // Send data to php file
                jQuery.ajax({
                    type: 'POST',
                    url: api_path_create,
                    data: { images: attachments, gallery_id: gallery_id },
                    success: function (response) {

                        // Get data from php file
                        var items = jQuery.parseJSON(response);

                        // Add to Gallery
                        image_view(items,categories);
                    }
                });

چطور میتونم که ابتدا صبر کنم تا جواب از فایل پی اچ پی دریافت کنم و بعد تابع image_view رو اجرا کنم؟
در اصل چطور میتونم که async و awiat رو اینجا پیاده سازی کنم
ممنون از دوستان


ثبت پرسش جدید
Mohammad reza Golshahi
تخصص : Go - Python
@golshahimohammadreza 4 سال پیش مطرح شد
1

سلام دوست عزیز
@nimageneral

طریقه نوشتن async/await برای ajax به صورت زیر هستش

async function doAjax(args) {
    let result;

    try {
        result = await $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: args
        });

        return result;
    } catch (error) {
        console.error(error);
    }
}

وقتی شما ریسپانسی از طرف فایل php ارسال نکنید با status کد 200 , وارد تابع success نمیشد و فانکشن شما اجرا نمیشود (در واقع باید بع همین شکلی که نوشتید کار کنه) !!!

شما می فرمایید وقتی درخواست داده میشع بلافاصله فانکشن شما اجرا میشود ؟ (برای مورد شما چگونه ریسپانس ارسال میکنید در فایل php)


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام