jQuery-stop函数

jQuery-stop函数,jquery,function,Jquery,Function,我想要实现的是,如果出现一个错误(我已经找到了一个),并且包含“error”一词,那么函数将停止运行。该函数基本上由5个ajax请求组成,当一个成功时,另一个开始。。就这样 function thing() { $.ajax({ ... ... success: function(html){ errorGet(html); $.ajax({

我想要实现的是,如果出现一个错误(我已经找到了一个),并且包含“error”一词,那么函数将停止运行。该函数基本上由5个ajax请求组成,当一个成功时,另一个开始。。就这样

function thing() {
    $.ajax({
        ...
        ...  
        success: 
        function(html){
            errorGet(html);   
            $.ajax({
            ...
            ...  
            success: 
            function(html){
                errorGet(html);
                    ...
                ... 
我有一个函数'errorGet()'来尝试并停止该函数

function errorGet(data){
    var re = /error/mgi;
    if( data.search( re ) == 0 ){
        thing.stop;
    }
}

但我知道。停止不起作用,但有人知道如何停止进程吗?

您是否尝试过抛出异常

throw "there was an error so I am going to stop";

您可以使用一个函数来调用AJAX请求,而无需异步。这样就不必设置netset,您只需
return
即可退出该函数

function thing() {
    var stop = false;

    $.ajax({
        async: false,
        ...  
        success: 
        function(html){
            stop = errorGet(html);
        }
    }

    if(stop) {
        return false;
    }

    $.ajax({
        async: false,
        ...  
        success: 
        function(html){
            stop = errorGet(html);
        }
    }
}

function errorGet(data){
    var re = /error/mgi;
    if( data.search( re ) == 0 ){
        return false; //no error
    }
    return true;
}

我认为没有办法破坏父函数。因为正则表达式不起作用,所以似乎有一个更大的问题。。。嗯,我不明白为什么。你(通过Firebug)确定“错误”真的在响应体中吗?无论如何,我个人会使用“/error/mi.test(data)”,它返回true或false;您实际上不需要“g”标志,这是行不通的,因为ajax机制将在HTTP请求完成之前返回,因此在“成功”回调中进行错误检查之前返回。换句话说,代码将在调用errorGet函数之前相当长一段时间到达“if(stop)”点。Pointy,它将等待$.ajax()完成,因为它是同步的(async:false)。听起来是个不错的选择。