Javascript 如何在WikipediaAPI中处理多个异步调用

Javascript 如何在WikipediaAPI中处理多个异步调用,javascript,asynchronous,mediawiki,wikipedia,Javascript,Asynchronous,Mediawiki,Wikipedia,我想找到维基百科页面中包含的所有链接,但我不知道如何绕过aysnc执行。我不太擅长异步编程。有人能帮忙吗 下面的代码获取页面链接列表。我能做到。问题是,如果我需要获得第二页的链接(每个请求500个链接),我不知道如何让它按顺序运行。 我按顺序需要它的原因是我将它包装在一个函数周围,该函数获取“所有”链接。不确定这是否是一个好的做法。如果有人能帮忙,我将不胜感激 function findLinksInPage(parent, plcontinue) { var url = 'https:

我想找到维基百科页面中包含的所有链接,但我不知道如何绕过aysnc执行。我不太擅长异步编程。有人能帮忙吗

下面的代码获取页面链接列表。我能做到。问题是,如果我需要获得第二页的链接(每个请求500个链接),我不知道如何让它按顺序运行。 我按顺序需要它的原因是我将它包装在一个函数周围,该函数获取“所有”链接。不确定这是否是一个好的做法。如果有人能帮忙,我将不胜感激

function findLinksInPage(parent, plcontinue) {
    var url = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=links&titles=' + parent + '&pllimit=500'
    if(plcontinue != undefined) {
        url += '&plcontinue=' + plcontinue
    }
    
    var links = []
    var plcontinue
    fetch(url)
    .then(response => response.json())
    .then(data => {
        if(data.continue != undefined) {
            plcontinue = data.continue.plcontinue
        }
        for(key in data.query.pages) {
            const linksPart = data.query.pages[pageId].links
            linksPart.forEach( value => {
                const link = value.title
                // console.log('Link found: ' + link)
                links.push(link)
            })
            var nextLinks = findLinksInPage(parent, plcontinue)
            links.concat(nextLinks)
            return links
        }
    })

        .catch(error => {
            console.log(console.error(error))
        })
}

如果您不局限于某些浏览器版本,我建议您使用
async/await
语法来更清楚地了解它


异步函数findLinksInPage(父级,plcontinue){
var url='1〕https://en.wikipedia.org/w/api.php?format=json&action=query&prop=links&titles=“+parent+”&pllimit=500”
如果(plcontinue!=未定义){
url+='&plcontinue='+plcontinue
}
变量链接=[]
无功功率
试一试{
let response=等待获取(url);
let data=wait response.json()
如果(data.continue!=未定义){
plcontinue=data.continue.plcontinue
}
for(输入数据.query.pages){
const linksPart=data.query.pages[pageId].links
linksPart.forEach(值=>{
const link=value.title
//console.log('找到链接:'+链接)
链接。推送(链接)
})
var nextLinks=await findLinksInPage(父级,plcontinue)
links.concat(nextLinks)
}
返回链接//控制台.log(所有链接))