解决不加断点就执行失败的问题

3,121 阅读1分钟

1.先解释一下这种情况产生的原因:

这是由于线程异步的问题,一般出现在本应该顺序执行两个任务,
比如A,B两个任务,正常情况下应该A先执行完成之后,B才能开始执行,但是B执行时,A还未完全执行结束,这种情况下就会导致本应该同步执行的事情变为异步
执行,此时就会出现问题,但是为什么加上断点之后就得到预期结果呢,
比如给B加上断点,这是因为给任务B加上断点,就会导致B这个任务的线程变慢,从而给任务A足够的时间去执行

解决办法:

直接举一个例子:

这是A任务的ajax:

$.ajax({
                url:A,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {

                },
                error: function() {
                   
                }
            });

这是B的ajax:

$.ajax({
                url:B,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {

                },
                error: function() {
                   
                }
            });

应该在A的ajax发送的请求执行结束之后才能执行,如果按照这种顺序去写就一定会出问题:

$.ajax({
                url: A,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {

                },
                error: function() {
                   
                }
            });

$.ajax({
                url: B,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {

                },
                error: function() {
                   
                }
            });

应该按照这种写法:

$.ajax({
                url: A,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {
        $.ajax({
                url:B,
                data: "responAnswer=" + responAnswer,
                type: "post",
                success: function(data) {

                },
                error: function() {
                   
                }
            });
                },
                error: function() {
                   
                }
            });

解释一下这是什么意思:

也就是说在A执行success之后才能执行B任务