Javascript 在上一个函数完成后调用函数

Javascript 在上一个函数完成后调用函数,javascript,ajax,Javascript,Ajax,我正努力做到这一点: function doThis() { firstFunction(function() { closeWindow();// close window only after firstFunction() completes }); } 这是从按钮调用的。第一个函数是完成后的AJAX调用,必须调用第二个非AJAX函数警报。不知何故,代码没有按预期工作。第一个函数工作正常,正在被调用。但是window.close似乎没有被调用 有什

我正努力做到这一点:

function doThis()
{
    firstFunction(function()
    {
        closeWindow();// close window only after firstFunction() completes
    });
}
这是从按钮调用的。第一个函数是完成后的AJAX调用,必须调用第二个非AJAX函数警报。不知何故,代码没有按预期工作。第一个函数工作正常,正在被调用。但是window.close似乎没有被调用

有什么建议吗?请不要输入jquery代码

更新:

让我详细解释一下。函数doThis正在从提交链接调用

<a href="#" name="sumbit" onClick='doThis()'><img src="img.png"/></a>

谢谢你们

这样声明您的函数:

function firstFunction(callback) {
     // setup XMLHttpRequest / IE equivalent
}
在事件处理程序中,调用回调:

if(this.readyState == 4 && this.status == 200) {
     // other stuff
     callback();
}
如果您已经这样做了,那么您可能在firstFunction中的某个地方有错误,您必须显示它的实现


或者,这永远不会被调用。

您确信AJAX代码工作正常吗。我的意思是,既然回调函数没有执行,你怎么知道呢?
就调用本身而言,您可以在不使用包装函数的情况下将just alert传递给firstFunction,也就是说。

您意识到您正在将函数传递给firstFunction,而firstFunction不会执行任何操作,除非firstFunction调用它?打开浏览器的错误控制台,查看执行过程中是否有任何错误。发布firstFunction的源代码。当您注意到您的期望与实际结果之间存在差异时,您不仅应该提及您的期望,还应该提及实际结果。您可以向我们展示ajax函数的实现吗?@Oswald正在调用第一个函数,并且工作正常。但是在那之后,第二个函数就不被调用了。控制台中没有错误-我已经更新了上面的问题。@gion_13请查看上面的更新。ajax函数单独调用时效果很好,但我无法在ajax函数完成后立即调用另一个函数,因此没有脚趾踏步。嗨,firstFunction在我仅在dot内部调用时工作,但我正在尝试在函数完成后立即调用另一个函数firstFunction@anp如你所说,firstFunction进行Ajax调用。由于这是异步的,因此您必须在XMLHttpRequest对象的readystatechange事件侦听器中调用该函数。没有其他方法,或者我仍然不明白,但我很确定这就是你的意思。ajax函数完美地完成了ajax功能,但我忘记调用回调函数。现在效果很好。见更新2。谢谢:D
function firstFunction(callback) {
     // setup XMLHttpRequest / IE equivalent
}
if(this.readyState == 4 && this.status == 200) {
     // other stuff
     callback();
}