gpt4 book ai didi

javascript - 如何从 Facebook API 返回的 jsonp 中获取数据作为封面图片

转载 作者:行者123 更新时间:2023-11-30 05:35:14 25 4
gpt4 key购买 nike

我有一个函数,它获取用户 ID 并为封面图像调用 FB 图形 API,API 调用是正确的我正在获取封面图像 url,但该 url 未存储在 var timlineimagepath。我已经为该变量尝试了所有可能的范围

var timelineimgpath;

function getFBTimelineImgPath(userid) {
var URL = 'https://graph.facebook.com/' + userid + '?fields=cover';
var path = $.ajax({
url: URL,
type: "GET",
dataType: "jsonp",
success: function (parsed_json) {
return (timelineimgpath = parsed_json["cover"]["source"]);
}
}
});

我正在从另一个函数调用此函数,但是 timelineimgpath 即将出现 UNDEFINED

最佳答案

您遇到的问题与上一个相同:

事实上,您将无法从 Ajax 函数返回任何内容,因为 Ajax 是异步的。认为每个 Ajax 调用都需要时间,并且下一个语句不会等待 Ajax 调用完成。

第一个解决方案:使用 promise

var timelineimgpath;

function getCover(userid) {
return $.ajax({
url: 'https://graph.facebook.com/' + userid + '?fields=cover',
});
}

getCover("19292868552").done(function (data) {
/** You have to do everything you need with your data HERE */
timelineimgpath = data.cover.source;
alert(timelineimgpath); // <-- this is called after
});

/**
* You see that the data is not available
* The Facebook API query has not occured yet!
*/
alert(timelineimgpath); // <-- "undefined"

JsFiddle


第二种解决方案:使用回调

function getCover(callback, userid) {
$.ajax({
url: 'https://graph.facebook.com/' + userid + '?fields=cover',
success: callback
});
}

function doWithCover(data) {
/** You have to do everything you need with your data HERE */
alert(data.cover.source);
}

getCover(doWithCover, '19292868552');

JsFiddle

关于javascript - 如何从 Facebook API 返回的 jsonp 中获取数据作为封面图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24202142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com