我有一个页面,可以从多个已保存的 Instagram 源加载帖子。 Feed 对象如下所示:
{'feed_type' : 'search', 'feed_term' : '#cars'}
{'feed_type' : 'profile', 'feed_term' : 'FerrariOfficial'}
如果提要与 Instagram 个人资料相关而不是话题标签,我们需要首先在 Instagram API 中查询该用户名的 ID(因为 Instagram 不允许按用户名查询)。
页面上还有一个用于添加新提要的表单,我想在添加提要后重用这些检查和显示方法。
我有以下功能:
getInstagramIdFromUsername()
displayPosts()
addNewFeed()
理想情况下,这将是主要逻辑:
onLoad() {
// for each feed...
if (f.feed_type == "profile") {
getInstagramIdFromUsername(f);
}
displayPosts(f);
}
onAddFeedFormSubmitted(f) {
if (f.feed_type == "profile") {
getInstagramIdFromUsername(f);
}
addNewFeed(f);
displayPosts(f);
}
但是,我在构建逻辑时遇到了麻烦,因为所有这些函数都是异步 AJAX 调用。最好的方法是什么?我应该使用 jQuery 的 Deferred Object在这里?
最佳答案
如果函数是异步的,您应该添加回调功能;
getInstagramIdFromUsername(callback)
回调获取在获取提要后执行,因此您可以像这样:
onLoad() {
if (feed_type == "profile") {
getInstagramIdFromUsername(function() {displayPosts();});
} else {
displayPosts();
}
}
关于javascript - 具有链式 AJAX 调用的条件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436307/