javascript - 如何延迟fb api中的api调用

标签 javascript facebook-graph-api

当有人单击按钮时,我同时使用 for 循环发出 2 个请求。然后我向他们的个人资料发布一条消息;说消息如下:

var my_array=["Hi i am jason", "I am feeling great today"];

上面是数组,然后我使用 for 循环更新状态,因此它首先循环第一条消息,然后循环第二条消息。

当我提出此请求时,这两条消息会同时在其个人资料上更新(可能会延迟一些毫秒)。我想要的是这 2 条消息之间的 2 秒延迟(间接地我想要 for 循环索引之间的延迟)。

因此,当我单击按钮时,第一条消息应立即更新,第二条消息应在 2 秒后更新。

我怎样才能实现这个目标?

最佳答案

您可以使用 setTimeout 在 JavaScript 中创建延迟:https://developer.mozilla.org/de/docs/Web/API/WindowTimers/setTimeout

例如:

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 block 中将 currentMessageId 参数设置为零。

顺便说一句,根据 platform policy 不允许预填充消息。用户必须自己编写每条消息。

关于javascript - 如何延迟fb api中的api调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35223006/

相关文章:

javascript - 在哪里存储 CouchDB 的设计文档?

facebook - 如何为 Facebook 的新 Graph API 返回的对象构建永久链接?

javascript - facebook 分享对话框重定向而不是弹出?

javascript - 如何在不嵌入的情况下添加 YouTube 视频

javascript - 如何使用 Angular Material 设计完全扩展下拉列表?

javascript - bootstrap 下拉菜单在点击时不显示下拉菜单

iphone - 我们可以使用 iOS 从我的应用程序更改 Facebook 帐户的封面图片吗?

html - 我的网站上不显示“赞”按钮

以 :0 结尾的 Facebook 固定链接

javascript - 如何禁止回车键触发onkeyup事件?