我在星号消息上查询Thunderbird / Gloda(也适用于其他查询)。另外,我假设所有返回的消息都应该有一个id(不返回:id未定义)。
let query = Gloda.newQuery(Gloda.NOUN_MESSAGE);query.bodyMatches("dd");
或......
let query = Gloda.newQuery(Gloda.NOUN_MESSAGE);query.starred(true);
我有一条已加星标的讯息。如果我遍历返回的集合,我得到1个id(通过alert(msg.id);)和数百万' undefined'。我实际上必须杀死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中显示该集合,则它为空,对应于length == 0:
用于显示:
let tabmail = document.getElementById("tabmail");
tabmail.openTab("glodaList", {
collection: aCollection,
title: "glodasearch",
background: false
});
发生了什么,我做错了什么?
感谢任何帮助,
克劳斯
答案 0 :(得分:0)
我在引号中尝试使用true并在我的控制台上测试它。 query.starred("true");
应该做到这一点。