如何使用 javascript 或 jquery 等待 facebook javascript api 响应
How to wait for the facebook javascript api response using javascript or jquery
我希望我的 postuserWall() 函数等待 FB.api 响应然后它 return true 或 false.but 它不等待响应。
我怎样才能让它等待响应
这是我的主要功能,它正在调用警报显示给我的 postuserWall 功能 undefined
$('.vacancies_tbl').on('click', '.btn-edit-vacancy', function(e) {
e.preventDefault();
var $this = $(this);
var chcek = postuserWall();
alert(chcek);
if(check){
window.location = $this.attr('href');
}
});
这是我的 postuserWall 函数
function postuserWall(){
var body = 'Usama New Post';
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
console.log(response);
alert('Error occured');
return false;
} else {
alert('Post ID: ' + response.id);
return true;
}
});
}
它没有等待 postuserWall 函数中的响应
一个解决方案(确保您了解异步的含义,这在 JavaScript 中非常重要):
$('.vacancies_tbl').on('click', '.btn-edit-vacancy', function(e) {
e.preventDefault();
var $this = $(this);
postUserWall(function(check) {
alert(check);
if(check){
window.location = $this.attr('href');
}
});
});
function postUserWall(callback) {
var body = 'Usama New Post';
FB.api('/me/feed', 'post', {message: body}, function(response) {
if (!response || response.error) {
console.log(response);
alert('Error occured');
callback(false);
} else {
alert('Post ID: ' + response.id);
callback(true);
}
});
}
您也可以使用 Promises,但这对于一个回调来说太过分了。
我希望我的 postuserWall() 函数等待 FB.api 响应然后它 return true 或 false.but 它不等待响应。
我怎样才能让它等待响应
这是我的主要功能,它正在调用警报显示给我的 postuserWall 功能 undefined
$('.vacancies_tbl').on('click', '.btn-edit-vacancy', function(e) {
e.preventDefault();
var $this = $(this);
var chcek = postuserWall();
alert(chcek);
if(check){
window.location = $this.attr('href');
}
});
这是我的 postuserWall 函数
function postuserWall(){
var body = 'Usama New Post';
FB.api('/me/feed', 'post', { message: body }, function(response) {
if (!response || response.error) {
console.log(response);
alert('Error occured');
return false;
} else {
alert('Post ID: ' + response.id);
return true;
}
});
}
它没有等待 postuserWall 函数中的响应
一个解决方案(确保您了解异步的含义,这在 JavaScript 中非常重要):
$('.vacancies_tbl').on('click', '.btn-edit-vacancy', function(e) {
e.preventDefault();
var $this = $(this);
postUserWall(function(check) {
alert(check);
if(check){
window.location = $this.attr('href');
}
});
});
function postUserWall(callback) {
var body = 'Usama New Post';
FB.api('/me/feed', 'post', {message: body}, function(response) {
if (!response || response.error) {
console.log(response);
alert('Error occured');
callback(false);
} else {
alert('Post ID: ' + response.id);
callback(true);
}
});
}
您也可以使用 Promises,但这对于一个回调来说太过分了。