猿问

for循环中的async问题

async function getTitle(url) {

    let response = await fetch(url);

    let html = await response.text();

    return html.match(/<title>([\s\S]+)<\/title>/i)[1];

  }

  for(let i=0;i<2;i++){

    let urls = `https://tc39.github.io/ecma262/`

    !async function(){

      let result = await getTitle(urls).then(function(title){

        console.log('22222',title,i)

        return title

      })

      console.log(result)

    }()


  }```

实际运行结果是,同时发生了两个请求,然后等待请求接过返回后,打印结果


![clipboard.png](/img/bVbdCHI)

想期望是请求完第一个接口,并且成功返回后,再请求第二个接口请求


繁星coding
浏览 1204回答 2
2回答

慕田峪9158850

那你在第一个获取数据并处理后调用第二个请求啊。(需要调整你的处理逻辑),类似i=0;function abc(x){&nbsp; &nbsp; let result = await getTitle(urls).then(function(title){&nbsp; &nbsp; console.log('22222',title,i)&nbsp; &nbsp; i++;&nbsp; &nbsp; if(i<x) abc(x);&nbsp; &nbsp; return title}abc(3);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答