我试图在函数中间暂停一段时间(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不是我想要的,但我不确定还有什么可以使用
答案 0 :(得分:5)
更改markDisplayed:
function markDisplayed(id) {
setTimeout(function() {
$.post("/api/messages/markdisplayed" + id);
console.log("Marking displayed");
}, 5000);
}
这将导致函数在执行其中的内容之前等待五秒钟。
答案 1 :(得分: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
}
可能适合你。