js函数调用另一个包含ajax的函数返回问题

当js过长时需要封装成不同的小功能,发现在函数调用另一个包含ajax的函数时,返回值有问题,百度了一圈没找到答案,去了stackoverflow上找,答案有点复杂是这样的。 这是国外网友的问题,加了异步为否之后,返回值仍是undefined (重点在下面,没采用国外网友的答案)

在这里插入图片描述

答案是这样的

在这里插入图片描述
有人回答加callback函数,我觉得不好,这个在调用函数那比较麻烦.所以没有采用。

这里是重点:
研究了一下ajax的执行过程,看下我写的逻辑

function checkTime() {
	var rs;
	$.ajax({
        type : "post",  
        url : "myURL.action",  
        async : false,  
        success : function(result){  
        	if(result=="NO"){
        		rs = false;
        	}else {
        		rs = true;
        	}
        }  
    });
	return rs;
}

function A{
	var flag = checkTime();
	console.log("返回值" + flag);//打印出来看看是不是想要的值
	if(!flag) {
		return false;
	}
}

这样就不会是undefined了,为什么这样写就行呢,因为ajax从后台返回后,执行了success函数,但如果不在最后写一个声明的return语句,即使在success函数写了return还是会执行ajax调用后面的无返回代码,这是执行顺序导致的。

————————————————
版权声明:本文为CSDN博主「Lilia_T」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33082731/article/details/87275733