2017-03-02 11 views
0

私はスター付きのメッセージでThunderbird/Glodaに問い合わせています(他のクエリでも同様です)。また、私は、返されたすべてのメッセージにid(戻り値ではない:idは未定義)を持つ必要があると仮定しています。glodaクエリの結果無限ループ?

let query = Gloda.newQuery(Gloda.NOUN_MESSAGE);query.bodyMatches("dd"); 

か....

let query = Gloda.newQuery(Gloda.NOUN_MESSAGE);query.starred(true); 

私は1つの主演のメッセージを持っています。返されたコレクションを繰り返し処理すると、1つのid(アラート(msg.id)で);および何百万もの「未定義」が取得されます。私は実際には明らかに無限ループから抜け出すためにThunderbirdを殺す必要があります。

観察:反復する aCollection.items.length = 0(ただし、1つのIDがある)

方法、果てしないループへのすべてのリード:

1)
for each (let glodaMsg in aCollection)

2 )

for each (let [, glodaMsg] in Iterator(aCollection)) 

3)これはMDNからのものです:https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Gloda_examples

try { 
     for (var glodaMsg in aCollection) { 
      //do something with the Conversation here 
      alert(glodaMsg.id); 
     } 
    } catch (e) {}; 

だけ追加発言: 私はtabmailでコレクションを表示しようとすると、それは、長さ== 0に対応し、空である:

 let tabmail = document.getElementById("tabmail"); 
      tabmail.openTab("glodaList", { 
      collection: aCollection, 
      title: "glodasearch", 
      background: false 
      }); 

:表示のために使用して

何が起こっている、私は間違って何ですか?

任意のヘルプは高く評価され、

クラウス

答えて

0

私は引用符で真で試してみました、私のコンソール上でそれをテストしました。 query.starred("true");はこのトリックを行うべきです。