簡體   English   中英

如何從 jQuery.ajax 獲取分頁結果

[英]How to get paginated results from jQuery.ajax

如果這個問題已經被問了十幾次,我深表歉意。 我無能的搜索無法立即找到答案。 我想從 Ajax 獲得分頁結果,並在返回的結果上運行一些 function。 function 如下。

function getPagedAjax(url, data,type='GET'){
        jQuery.ajax({
                type: type,
                url : url,
                data: data,
                dataType: 'JSON',
                success: function(response) {
                }
        }).then(
                function(response1){
                        console.log(response1);
                        const pages = Math.ceil ( response1.data.total / itemsPerPage);
                        const dataArray = [...Array(pages + 1).keys()].slice(2).map(
                                function(page){
                                        var pagedData = jQuery.extend({}, data);
                                        pagedData.page=page;
                                        return pagedData
                                }
                        ); //build an array of json data for API calls
                        return jQuery.when( ...dataArray.map( data2 => jQuery.ajax(
                                {type: type, url: url, data: data2, dataType: 'JSON'}))).then(
                                        function(){
                                                console.log( [response1].concat(Array.from(arguments)));
                                                return [response1].concat(Array.from(arguments))
                                        }
                                )
                }
        )
}

我希望結果如下。

getPagedAjax(url, data).done(function(msg){console.log(msg);});

但是,我得到的是“未定義”。 如果我的邏輯出錯,我將不勝感激。

我錯過了return

function getPagedAjax(url, data,type='GET'){
        return jQuery.ajax({
                type: type,
                url : url,
                data: data,
                dataType: 'JSON',
                success: function(response) {
                }
        }).then(
                function(response1){
                        console.log(response1);
                        const pages = Math.ceil ( response1.data.total / itemsPerPage);
                        const dataArray = [...Array(pages + 1).keys()].slice(2).map(
                                function(page){
                                        var pagedData = jQuery.extend({}, data);
                                        pagedData.page=page;
                                        return pagedData
                                }
                        ); //build an array of json data for API calls
                        return jQuery.when( ...dataArray.map( data2 => jQuery.ajax(
                                {type: type, url: url, data: data2, dataType: 'JSON'}))).then(
                                        function(){
                                                console.log( [response1].concat(Array.from(arguments)));
                                                return [response1].concat(Array.from(arguments))
                                        }
                                )
                }
        )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM