http://developers.facebook.com/docs/reference/javascript/FB.Data.waitOn/
全クエリの結果が返るまで待ちます。使い方の例は、FB.Data.queryを参考にしてください。
Examples
複数クエリの結果が返るまで待ち、それからコールバック関数を実行します。
var queryTemplate = 'select name from profile where id={0}';
var u1 = FB.Data.query(queryTemplate, 4);
var u2 = FB.Data.query(queryTemplate, 1160);
FB.Data.waitOn([u1, u2], function(args) {
log('u1 value = '+ args[0].value);
log('u2 value = '+ args[1].value);
});
上記と同じですが、JavaScriptクロージャの利点を活かし、args[0]やargs[1]の利用を避けています。 var queryTemplate = 'select name from profile where id={0}';
var u1 = FB.Data.query(queryTemplate, 4);
var u2 = FB.Data.query(queryTemplate, 1160);
FB.Data.waitOn([u1, u2], function(args) {
log('u1 value = '+ u1.value);
log('u2 value = '+ u2.value);
});
他のWaitableオブジェクトに依存する新しいWaitableオブジェクトを生成します。 var friends = FB.Data.query('select uid2 from friend where uid1={0}',
FB.getSession().uid);
// ...
// Create a Waitable that is the count of friends
var count = FB.Data.waitOn([friends], 'args[0].length');
displayFriendsCount(count);
// ...
function displayFriendsCount(count) {
count.wait(function(result) {
log('friends count = ' + result);
});
}
依存関係のリストにはWaitableオブジェクトとデータ両方を混ぜることができます。
var queryTemplate = 'select name from profile where id={0}';
var u1 = FB.Data.query(queryTemplate, 4);
var u2 = FB.Data.query(queryTemplate, 1160);
// FB.getSession().uid is just an Integer
FB.Data.waitOn([u1, u2, FB.getSession().uid], function(args) {
log('u1 = '+ args[0]);
log('u2 = '+ args[1]);
log('uid = '+ args[2]);
});
Parameters
Name | Type | Description |
---|---|---|
dependencies | Array | 完了まで待機しなくては成らない依存関係のリスト。個々のアイテムはWaitableオブジェクトかデータ値を渡します。 |
callback | Function | データが返されてから実行されるコールバック関数。返されたデータの配列が渡されます。文字列が渡された場合、JavaScript文字列として評価されます。 |