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
})
}
})
}
异步递归:callBack 回调实现
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 有很多人不理解回调函数和递归函数,我们在这里研究一下。(本文仅适合新人) 什么是回调函数,什么是递归函数 回调函数...
- js是一门单线程语言,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长...
- <!-- 1,首先后台传入 10个mac 地址给我 --> <!-- 2,然后我获取到 10给mac地址 --> ...
- 在Android开发中,我们通常会遇到需要定义接口然后回调,假如有多个不同类型的回调,通常我们的步骤是: 1,...
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...