鍍金池/ 問答/HTML/ 關(guān)于遞歸使用ajax的返回值問題

關(guān)于遞歸使用ajax的返回值問題

用vue做的,原本是雙重for循環(huán),內(nèi)層嵌套ajax獲取對象?,F(xiàn)在需要把內(nèi)層for循環(huán)改為遞歸ajax函數(shù),結(jié)果返回值arr為undefined,ajax內(nèi)部arr的值能正常獲取。看網(wǎng)上的方法在getProducts函數(shù)調(diào)用自身時前面加return也是一個結(jié)果,問下如何解決?圖片描述

圖片描述

回答
編輯回答
糖豆豆

這個需求完全可以用promise.all啊

function getProducts(link, typeId, pageNum, pageMax) {
    const arr = []
    for (let i = pageNum; i < pageMax; i++) {
        link = `${link}?id=${typeId}&page=${i}`
        arr.push(
            $.ajax({
                url: link,
                type: 'get',
                async: false,
                timeout: 5000,
                dataType: 'json'
            })
        )
    }
    return arr
}
const arr = getProducts('www.baidu.com', 1, 1, 10)
Promise.all(arr).then(function (values) {
    console.log(values)// 這個values就是你要的數(shù)組
})
2017年1月10日 23:51