0

我试图在函数中间暂停给定的时间(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 不是我想要的,但我不确定还能使用什么

4

2 回答 2

5

将标记显示更改为:

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

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

于 2012-07-30T16:01:39.863 回答
0

更换

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
}

可能对你有用。

于 2012-07-30T16:02:54.823 回答