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调用后面的无返回代码,这是执行顺序导致的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值