当有人点击按钮时,我正在同时使用for循环发出2个请求。然后我在他们的个人资料中发布消息;说消息如下:
HAVING
上面是数组,然后我使用for循环更新状态,所以首先它遍历第一条消息,然后循环第二条消息。
当我提出此请求时,这2条消息会同时更新其个人资料(可能会延迟几毫秒)。我想要的是这2条消息之间的延迟为2秒(间接地我想要for循环索引之间的延迟)。
所以当我点击按钮时,第一条消息应该立即更新,第二条消息应该在2秒后更新。
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用setTimeout:https://developer.mozilla.org/de/docs/Web/API/WindowTimers/setTimeout
在JavaScript中创建延迟例如:
window.setTimeout(function() {
//do your second API call
}, 2000); //2 seconds delay
解决这个问题的一种方法(未经测试,但你应该明白这一点):
var currentMessageId = 0;
function doAPICall() {
//do API call with my_array[currentMessageId]
currentMessageId++;
if (currentMessageId < my_array.length) {
window.setTimeout(doAPICall, 2000); //2 seconds delay
} else {
//done
}
}
您还可以将整个代码封装在一个函数中,这样您就可以在单击按钮时调用它。或者只是在else
块中将currentMessageId参数设置为零。
顺便说一句,根据platform policy,不允许预先填写邮件。用户必须自己编写每条消息。