2011-07-11 9 views

答えて

2

あなたは正しい方向に向かっています。あなただけのtodosだけフラグを渡す必要があります。例はhereです。

以下の例でさらに詳しく説明すると、いくつかの構文エラーがあり、別のフラグが必要な場合があります。なぜ警報が必要なのかわからない、イベントループがスピンしていないように聞こえる。どのような文脈でこれらのビットを呼んでいますか?

はこれを試してください:あなたの例に

var arrayItems = new Array(); 

var todoListener = { 
    onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {}, 
    onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) { 
     arrayItems = arrayItems.concat(aItems); 
    } 
}; 

var filter = aCalendar.ITEM_FILTER_TYPE_TODO | aCalendar.ITEM_FILTER_COMPLETED_ALL; 
aCalendar.getItems(filter, 0, null, null, todoListener); 
1

おかげで、私は私の主な問題でしたリスナーを実装する方法を理解します。

var arrayItem = new Array; ; 

    var todoListener = 
    { 
     onOperationComplete: function(aCalendar, aStatus, aOperationType, aId, aDetail) {}, 
     onGetResult: function(aCalendar, aStatus, aItemType, aDetail, aCount, aItems) 
     {  
      for (let i=0; i < aCount; i++) 
      { 
       arrayItem.push(aItems[i]); 
      }   
     } 
    }; 

    var filter = aCalendar.ITEM_FILTER_ALL_ITEMS; 
    filter |= aCalendar.ITEM_FILTER_TYPE_TODO; 
    aCalendar.getItems(filter, 0, null, null, todoListener); 

は、しかし、私はここで本当に奇妙な問題がありますので、ここで何私のコード

。実際には、私はこのコードではtodosを取得していません。 getItems()メソッドの後にalert("something");を追加して、arrayItemをいっぱいにする必要があります。それ以外は空です。

+0

リスナーが非同期であるため、getItemsコールの後でイベントループを回転させるか、リスナーまたはネストされた関数で処理を続行するようにパターンを変更する必要があります。 –

関連する問題