js执行的顺序

在使用easyui的时候,被js的执行顺序搞懵了,仔细调了一下,原理还没有搞太懂,但是执行的顺序大体弄懂了。

示例代码:

function main () {

var  a1 =  " ";     var a2 = " ";  


if ( a ( a1, a2 ) ) {

b( b1, b2 );

}

}

function  a ( args0, args1 ) {

//业务处理

var flag = true;

$.messager.confirm( "title ", "msg",function(r) {

    if ( r ) {   

$.ajax({

url : url,
type : 'post',
data: data,
success : function(data) {
 

var re = JSON.parse(data);

if (re.success) {

flag = true;

} else {

flag = false;

}

}

});

   }

}

return flag;

}

function  b ( args0, args1 ) {

//业务处理

$.ajax({

url : url,
type : 'post',
data: data,
success : function(data) {
 

var re = JSON.parse(data);

if (re.success) {

alert(re.msg);

}

}

});

}

以上就是大体的代码,按照js顺序执行的逻辑应该是调用main函数,然后进行判断执行完函数a的返回结果以后,根据结果判断是否执行函数b。

但是,实际的情况是:调用main函数时,先执b,然后才弹出对话框提示是否执行 a函数的ajax。 在运行时用alert() 弹出执行顺序时,调用main函数时,执行 a ,直接返回true,接着执行b函数,然后在执行a的对话框那个ajax。

这样,显然是没有按照所需要的来进行执行,根据逻辑修改代码,把函数a的flag默认值改为false,并在a函数的ajax中的re.success 判断中加上函数b。

修改后的执行顺序是  main --->a -------(成功) ------>b -------->结束

                                                      +--------(失败)------->结束




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值