关于异步回调问题

JavaScript是单线程!!!

由于一些原因,我在发出ajax请求之后需要在请求成功的回调判断是否获取到了所需的数据, 如果失败了,则递归调用,继续请求;

function ajax(){
  // 异步操作
  if(异步返回结果出错){
    // 递归
     ajax();
  }
  console.log('123')
}

ajax();

期望的是异步结果出错时就递归,但是由于ajax()里面有异步操作,所以当递归到异步操作时又会回过头来执行console.log('123');
所以此时我们可以在加一个return解决此问题;

function ajax(){
  // 异步操作
  if(异步返回结果出错){
    // 递归
     ajax();
     
     // 将函数return
     return
  }
  console.log('123')
}

ajax();

你可能感兴趣的:(关于异步回调问题)