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