按顺序执行2个JavaScript函数

kro*_*ine 5 javascript jquery

我有一个有两行的函数,我希望它们按顺序执行.功能是:

showNotification(message){
    $("#notificationMessageBody").html(message); // line1
    $("#notificationModal").modal('show');       //line2
}
Run Code Online (Sandbox Code Playgroud)

所以,每当我打电话给我showNotification("Hello World!")如何确保line1之前执行line2(意味着内容加载在模态触发之前完成)基本上,我试图在模态体中填写我的消息然后显示它,而不是在填充之前.

- 编辑 -

这些函数确实是一个接一个地执行,但我的模态在jQuery加载message到我的之前弹出#notificationMessageBody

结果,例如:如果我打电话给showNotification("Hello")我得到一个带有"你好"的模态(模态和东西的安排已完成),但之后如果我调用showNotification("World")模态首先出现"Hello",那么之后它会变为"世界".

注意:"你好"和"世界"是很大的文本垃圾,所以把它加载到我的DIV中必须花一些时间,我相信.即使它们被一个接一个地执行,但似乎(对于普通者)首先是模态弹出然后替换完成.我希望现在的情况有点清晰.

这个功能周围的任何地方都没有涉及AJAX.基本上,这是我可以说的自定义alert()函数.我的页面中有一个带有正确ID的模态.我改变了模态体内容(使用jQuery的.html()函数)并触发模式显示,如代码所示.

Sha*_*ard 3

您可以使用该.promise()方法(在 jQuery 1.6 中添加)来确保第二个方法在第一个方法完成后执行:

$("#notificationMessageBody").html(message).promise().done(function() {
    $("#notificationModal").modal('show');  
});
Run Code Online (Sandbox Code Playgroud)