我试图在功能中间暂停一段给定的时间(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);
}​


这将导致该函数等待五秒钟,然后执行其中的内容。

10-07 17:25