Ajax запускает часть кода (отсрочку), прежде чем перейти к следующей части - PullRequest
0 голосов
/ 14 мая 2019

У меня есть некоторый код, который вызывается, и он проходит через начало моего $ .ajax (). Мне нужно это, чтобы пройти через весь мой метод, прежде чем он выйдет и перейдет к следующей части, потому что он не составлен должным образом, пока он проходит весь путь до конца. В настоящее время он запускается, а затем выходит из режима пропуска моего отсрочки и переходит в условие if (woimageindex> = 0)

Вот мой код, который у меня есть. Мне нужно, чтобы (woimageindex == -1) запускался и проходил через defer.done (function () {но он пропускает все в этом разделе. Как я могу сделать это, прежде чем двигаться дальше?

if (woimageindex == -1)//item not found
                        {
                            var ajaxRequests = [];

                            url = rootPath + "utility/GetWebRequestImages";                          

                            ajaxRequests.push($.ajax({
                                type: 'POST',
                                url: url,
                                data: {
                                     corp_id: WOCorp_id
                                },
                                dataType: 'json'
                            }));

                            var defer = $.when.apply($, ajaxRequests);
                            defer.done(function () {
                                // This is executed only after every ajax request has been completed
                                $.each(arguments, function (index, responseData) {
                                    switch (index) {
                                        case 0://status
                                            //populate the AutoCompleteDataSource with the data from server
                                            arrWOWebRequestImagesList.push(new PickListModel(WOCorp_id, responseData));
                                            woimageindex = arrWOWebRequestImagesList.length - 1;
                                            break;
                                    }
                                    //alert(index);
                                });//end of switch
                            });//end of defer
                        }

                        if (woimageindex >= 0)
                        {
                            var categories = arrWOWebRequestImagesList[woimageindex].list;
                            alert(categories.length);
                            var list = [];

                            // added new PickListModel(webimage_id, after .push(
                                //list.push(new PickListModel(webimage_id, $.map(arrWOWebRequestImagesList[woimageindex].list, function (item) {
                            list.push( $.map(arrWOWebRequestImagesList[woimageindex].list, function (item) {
                                return new PickListItem(item.caption, item.caption, item.webimage_id);
                            }));
...