关于异步回调问题

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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 五十三:请解释 JavaScript 中 this 是如何工作的。1.方法调用模式当一个函数被保存为一个对象的属性...
    Arno_z阅读 604评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,160评论 1 32
  • 一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...
    lucas777阅读 5,275评论 2 54
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,844评论 1 45
  • 肃宁董事莎莎,丽丽精英团升级的董事,有她们老大丽丽的魄力和拼劲儿,特别像丽丽!从开始丽丽对我讲,有个肃宁的妹妹非常...
    完颜古方张振华阅读 350评论 0 2