我过去一直在努力解决的问题,今天仍然无法解决的是,在收到响应之前阻止API/AJAX继续。目前我正在使用Facebook API。我需要从调用中获取响应,然后返回它,但我的函数在我从API调用中获得响应之前就已经返回了。我知道为什么会发生这种情况,但我无法找出如何防止它!这是我的代码...
function makeCall(){
var finalresponse = "";
var body = 'Test post';
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
finalresponse = response.error;
} else {
finalresponse = 'Post ID: ' + response.id;
}
});
return finalresponse;
}
// ----- 编辑
我注意到有些人建议这样做...
function makeCall(){
var finalresponse = "";
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
finalresponse = response.error;
return finalresponse;
} else {
finalresponse = 'Post ID: ' + response.id;
return finalresponse;
}
});
}
但是这会返回未定义
// 根据更新进行编辑
function share_share(action_id){
var finalresponse = makeCall(action_id, process);
return finalresponse;
}
function makeCall(action_id, callback){
var body = 'Test post';
FB.api('/me/feed', 'post', { message: body }, function (response) {
if (!response || response.error) {
var finalresponse = response.error;
} else {
finalresponse = 'Post ID: ' + response.id;
}
callback(action_id, finalresponse);
});
}
function process(action_id, finalresponse){
console.log(finalresponse);
}
return finalresponse;
在 API 调用之外。 - ayyp