在FB.api函数中创建一个数据项目
Create an ojbect of data inside FB.api function
我正在尝试从facebook获取用户的相册,我已经完成了这项工作,现在我需要在FB.api函数中创建一个带有albumID和albumCover的对象。
因为FB.api是一个异步函数,所以我不能这么做。
这是我的代码:
var getUserAlbum = function () {
var token = 'access token';
var albums = [];
FB.api(
"/me/albums/", {'accessToken': token},
function (album) {
if (album && !album.error) {
$(album.data).each(function (k, v) {
FB.api(
"/"+ v.id +"/picture",
function (albumCover) {
if (albumCover && !albumCover.error) {
var id = v.id;
var url = k.url;
$(albumCover.data).each(function (i, k) {
albums.push({
"id": v.id,
"url": k.url
});
});
}
}
);
});
console.log(albums); // it is giving me blank array
//because it executes before FB.api ends
}
}
);
console.log(albums); // also blank here
}
您应该在回调中得到响应后继续操作,简单!这是处理异步(如ajax)请求的最明显的方法。
代码:
var getUserAlbum = function () {
...
...
FB.api(
"/"+ v.id +"/picture",
function (albumCover) {
if (albumCover && !albumCover.error) {
var id = v.id;
var url = k.url;
$(albumCover.data).each(function (i, k) {
albums.push({
"id": v.id,
"url": k.url
});
});
// EDIT
console.log(albums);
proceed(albums);
}
}
);
...
...
}
function proceed(albums) {
// do whatever you want to do with the `albums`
}
相关文章:
- 动态构建一个数据表与scriplets
- 单击一个数据表,填充第二个数据表
- jquery获取一个数据标记并使用它做一些事情
- 在JSON中创建一个数据对(不是字典,而是两个独立的数据)
- 在FB.api函数中创建一个数据项目
- AngularJS从另一个数据模型访问数据模型
- 如何检测一个数据角色=“页面”中对特定列表视图项的单击,并在另一个数据上显示相应的数据
- 在 Backbone js 中永久引用来自另一个数据的数据
- Canvas getImageData() 为了获得最佳性能.提取所有数据或一次提取一个数据
- 我有一个数据列表,我将其转换为 Ul 和 li 的列表,现在我希望这个列表在 JSP 中显示为树
- jQuery 查找具有一个数据键和多个值的数据属性
- 如何在我的高图表饼图中获取一个数据标签,这是一个字体很棒的图标
- 如何从一个数据数组绘制图表并从另一个数据数组在图表上制作标签?高图表 v.4.0.4.
- 更新其中一个数据表单元格的多个下拉值的最佳方法是什么
- jQuery Mobile - 如何在从一个数据角色页面移动到另一个数据角色页面时传递参数
- 谷歌图表API:一个数据系列,两个垂直轴
- 为什么这个ajax请求有一个数据字符串,里面有一堆带破折号的数字
- 可以't使用jquery在selected中选择一个数据
- 我在angular js中调用一个数据抛出json,但不接收数据为什么
- JavaScript中的Ajax只发送数组中的最后一个数据