私が過去に苦労し、今日も苦労しているのは、応答を受け取るまで 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);
}