异步递归:callBack 回调实现

const privateKey = '高德地图key';
const axios = require('axios')
const keywords = '美食|面包'
const adCityCode = '110000'


let allData = [] // 保存每一页数据
serach(1)

function serach(page) {
  getOnePageData(page, (res) => {
    console.log(page, res)
    allData.concat(res.data)
    if (res.nexPage) {
      page = page + 1;
      serach(page) // 递归调用搜索,异步
    }
  })
}

// 异步获取一页数据
function getOnePageData(page, callBack, pageSize = 20) {
  let url = 'https://restapi.amap.com/v3/place/text'
  axios.get(url, {
        params: {
            key: privateKey,
            city: adCityCode,
            keywords: keywords,
            citylimit: true,
            offset: pageSize,
            page: page
        }
    }).then(res => {
        if (res.data.pois && res.data.pois.length > 0) {
            callBack({
        data: res.data.pois,
        nexPage: true
      })
        } else {
      callBack({
        nexPage: false
      })
    }
    })
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容