javascript - 如何确保一项任务仅在另一项任务结束后发生

标签 javascript jquery ajax jquery-deferred

请不要让它重复。我正面临一个大问题。我正在编写一个包含数千行代码的 JavaScript 代码。我的问题是:

methodA 从它自己的类中调用。

methodA{  
    doSomething(abc, def, function(obj){  
        obj.getName();  
    });  
}  

doSomething(abc, def, callback){  
// codes....
callback(new XYZ());  
}

在 XYZ 类构造函数中,我使用了几个 Jquery Deffered 对象(带有 ajax 调用)。所以我的问题是在 obj.getName()我收到错误 this.name没有定义。那么,当控件到达 obj.getName() 时,如何确保整个 new XYZ() 执行完全结束(所有 ajax 调用、回调等)。功能 ?

谢谢

最佳答案

您可以使用函数回调来实现此目的。 更多内容可以通过jquery deferred在google上搜索 如shown here

var jqDeferred = doSomething(abc,def,function(obj){

});

jqDeferred.done(function(){
obj.getName();  
})


doSomething(abc,def,callback)
{

}

关于javascript - 如何确保一项任务仅在另一项任务结束后发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24261156/

相关文章:

javascript - 使用 jQuery 更改当前页面链接的 CSS

javascript - AJAX 请求会覆盖另一个吗?

javascript - split() js 最后一个数组项

javascript - Ruby on Rails -> 动态创建 div

javascript - 将服务变量绑定(bind)到 Controller AngularJS

javascript - 将自定义消息身份验证代码从 Java 转换为 JavaScript

javascript - 每次单击按钮时重置 setTimeout?

当我添加参数时,Javascript 函数不会触发

javascript - 为什么我的 in for each 循环只添加最后一个元素?

javascript - 如何从另一个网站加载 .json 文件?