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

NameTypeDescription
dependenciesArray

完了まで待機しなくては成らない依存関係のリスト。個々のアイテムはWaitableオブジェクトかデータ値を渡します。

callbackFunction

データが返されてから実行されるコールバック関数。返されたデータの配列が渡されます。文字列が渡された場合、JavaScript文字列として評価されます。