2014-10-09 123 views
-2

我想知道有没有办法在jQuery中停止代码执行,直到返回函数结果。在jQuery中暂停代码执行

functionName() { 
    //user inserts something 
    return user_insertion; 
} 
$(document).ready(function() { 
    //code before 
    if (var1.length > 1) result = functionName(data); 
    else result = [data: 1, data: 2, data: 3]; 
    //code after, the one I want to pause execution of 
    //do something with result that user inserted 
}); 
+0

*“我想知道有没有办法在jQuery的停止代码执行,直到返回函数的结果。” * **电话** – 2014-10-09 14:35:38

+0

如果你。阅读其他问题,他们都应该说你不应该这样做。 – Barmar 2014-10-09 14:36:13

+1

欢迎使用异步编程。 – Andy 2014-10-09 14:37:51

回答

0

我们根本在JavaScript中没有sleep功能,因为它不支持线程(除了WebWorkers的概念,但是这是超出范围)。

你正在寻找的可能是承诺模式。看看这里的文档: http://api.jquery.com/promise/

你应该有你的functionName()履行预先定义的承诺。

0

也许这可以帮助你:

functionName() { 
    //user inserts something 
    return user_insertion; 
    callback(); 
} 
function callback(){ 
    // do something after; 
} 
$(document).ready(function() { 
    //code before 
    if (var1.length > 1) result = functionName(data); 
    else result = [data: 1, data: 2, data: 3]; 
    //code after, the one I want to pause execution of 
    //do something with result that user inserted 
}); 
+0

您的回报和执行回调失灵。 – 2014-10-09 14:42:20