victorzadorozhnyy
@victorzadorozhnyy

Как заставить ждать .done() при выполнении AJAX запроса?

Ножно заставить ждать jQuery.Deferred() ответа от кастомного алерта (Модал), как это происходит если поставить alert('Done') браузерный.
deferred.done() выбрал что бы не выводить функцию при ошибке.
jQuery( document ).ready(function( $ ) {
                $.ajax({
                    'url': root_url + 'users/',
                    'method': 'POST',
                    'beforeSend': function (xhr) {
                        xhr.setRequestHeader('X-WP-Nonce', Slug_API_Settings.nonce);
                    },
                    data:{ ... },
                    success: function() {
                        //Это не стандартный браузерный алерт, а Модал бутстраповский
                        that.setState({ alert: <AlertDismissable
                                                    alMessage={"New User " + that.state.username.toUpperCase() + " created"}
                                                    alertStyle={'success'}
                                                /> });
                    },
                    ...
                    error: function(response) {
                        //Это не стандартный браузерный алерт, а Модал бутстраповский
                        that.setState({ alert: <AlertDismissable
                            alMessage={"Check your input again and try. An error occurred."}
                            alertStyle={'danger'}
                        /> });
                    }

                }).done(//нужно подождать выполнения пока не закроется AlertDismissable
                    that.props.reset
                );
            });
        });
  • Вопрос задан
  • 426 просмотров
Решения вопроса 1
@Maa-Kut
А зачем для этого Deferred? У бутстрапового Modal'а есть событие hide (на закрытие диалога, как я понимаю), вот там нужный код и написать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы