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();