在javascript函数中间暂停



我试图在一个函数中间暂停一段给定的时间(5秒)

这是我试过的,但不起作用

(function MessagesAjax() {
    $.post('/api/messages/get', function(data) {
        for (var i = 0; i < data.length; i++) {
            $.jGrowl(data[i].Body.toString().substring(0, 150), { header: 'New Message', sticky: true, });
            markDisplayed(data[i].Id);
        }
        setTimeout(MessagesAjax, 5000);
    });
})();
function markDisplayed(id) {
    setTimeout(5000);             //want it to pause here
    $.post("/api/messages/markdisplayed" + id);
    console.log("Marking displayed");
}

我只需要它暂停一下,这样在邮件被发送回服务器之前就会有延迟

我几乎可以肯定setTimeout不是我想要的,但我不确定还应该使用

将显示的标记更改为:

function markDisplayed(id) {
    setTimeout(function() {
        $.post("/api/messages/markdisplayed" + id);
        console.log("Marking displayed");
    }, 5000);
}​

这将导致函数在执行其中的内容之前等待五秒钟。

替换

function markDisplayed(id) {
    setTimeout(5000);             //want it to pause here
    $.post("/api/messages/markdisplayed" + id);
    console.log("Marking displayed");
}

带有

function markDisplayed(id) {
    setTimeout(function(){
      $.post("/api/messages/markdisplayed" + id);
      console.log("Marking displayed");
      },5000);             //want it to pause here
}

可能对你有用。

最新更新