javascript - 按顺序执行2个JavaScript函数

标签 javascript jquery

我有一个包含两行的函数,我希望它们按顺序执行。函数是:

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

因此,每当我调用 showNotification("Hello World!") 时,我如何确保 line1line2 之前执行(意味着内容加载在模态触发器之前完成) 基本上,我试图在模态正文中填写我的消息,然后显示它,而不是在填写之前。

--编辑--

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

因此,例如:如果我调用 showNotification("Hello"),我会得到一个带有“Hello”的模态(模态和内容的排列已经完成),但之后如果我调用 showNotification("World") 模式首先出现“Hello”,然后变为“World”。

注意:“Hello”和“World”是一大堆文本垃圾,所以我相信将它们加载到我的 DIV 中一定需要一些时间。尽管它们是一个接一个地执行的,但看起来(对普通人来说)首先是模态弹出然后替换完成。我希望图片现在有点清晰。

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

最佳答案

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

$("#notificationMessageBody").html(message).promise().done(function() {
    $("#notificationModal").modal('show');  
});

关于javascript - 按顺序执行2个JavaScript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34577146/

相关文章:

javascript - 原始 HTML 字符串与标签名称一起显示而不是渲染

JavaScript:检查 "virgin"元素?

javascript - 禁用 Chrome 新标签缩略图

javascript - jquery ui Accordion 单击一次展开但第二次单击不折叠

javascript - Ajax !需要一个小修复

javascript - 仅在单击下拉菜单时填充下拉菜单

javascript - 如何在MySQL数据库中更新数据后显示加载图像

javascript - 如果 lodash 模板中不存在给定属性,如何添加默认值

javascript - 来自静态文件的 Angular 用户 JSON 请求

javascript - jquery 打开日历到特定月份