使函数等待/暂停;直到另一个结束
Make a function wait/"pause" till another one finishes
如何使一个函数仅在它调用的另一个函数完成后继续。像这样:
function FunctionOne() {
//Do something ...
FunctionTwo()
//Rest of the code after two is finished
}
function FunctionTwo() {
//Some code
}
编辑:确切的函数是这样的:
function FunctionOne() {
//Do something ...
var result;
for (var i = 0 , i < 100 , ++i){
result = FunctionTwo()
}
//Rest of the code after two is finished
console.dir(result); //this here gives me undefined
}
function FunctionTwo() {
$.get("url", function(data)
{
result = data;
console.dir(result); //this gives me the data but the first function is still running and it finishes faster then the data is retured
return result;
}
必须使用jQuery。设置async: false
一个简单的例子:
result = '';
function FunctionTwo() {
jQuery.ajax({
url: 'url',
success: function(data) {
result = data;
console.dir(result);
},
async: false
});
alert(result);
}
这应该已经按照您的要求完成了。除非你指定functionotwo异步运行,否则它会为你阻塞。
编辑回应你的编辑:如果你想让Ajax调用阻塞,那么没有理由把它作为一个异步调用,如果你希望它保持异步,那么利用Ajax调用的回调来执行你的数据处理函数,而不是把代码放在主块中。
function FunctionOne() {
//Do something ...
var result;
for (var i = 0 , i < 100 , ++i){
result = AJAXCall(i)
}
}
function HandleAJAXResponse(response,id)
{
console.dir(response)
}
function AJAXCall(id) {
$.get("url",function(data,id){
HandleAJAXResponse(data,id);
});
}
相关文章:
- 在另一个函数成功结束后调用该函数
- 在for循环中另一个音频结束后播放一段时间的音频
- 两个精灵相撞 - 一个后端结束了另一个
- 同时循环承诺,直到另一个承诺结束
- 事件侦听器,一个css转换结束,另一个开始
- 结束一个会话,以便在用户点击浏览器后退按钮时可以开始另一个会话
- 如何结束json数据数组,并返回另一个值
- 让 YouTube API 在第一个视频结束时自动开始播放另一个视频
- Javascript在另一个异步函数结束时调用函数
- 在JavaScript中,等待一个函数结束后再开始另一个函数
- 使函数等待/暂停;直到另一个结束
- 如何正确插入回调函数,使一个函数结束,然后执行另一个函数
- Javascript绑定事件处理程序的另一个函数激活/结束
- 停止滚动结束触发另一个滚动
- 如何确保一个任务只有在另一个任务结束后才会发生
- 在JavaScript中是否有一种方法可以用另一个函数结束一个函数?
- JavaScript:在另一个函数调用结束后继续执行函数
- 如何等待一个ajax调用结束进行另一个ajax调用循环
- 在另一个操作结束后执行操作
- 如何在另一个jquery事件开始之前瞄准并结束一个jquery事件