Javascript 有人能解释一下如何使用conversationThreading js吗?

Javascript 有人能解释一下如何使用conversationThreading js吗?,javascript,email,Javascript,Email,我试图使用此代码将电子邮件分组到线程中,但文档很少,或者我无法理解它。有没有人以前使用过这段代码,或者使用过它所基于的 这就是我目前所处的位置: 使用Electron我加载并解析本地mbox使用and 我构建了一个javascript对象数组,其中包含messageId、inReplyTo和引用的键值对 使用来自的示例代码,我尝试构建线程,但显然我做得不对。我没有错误,但也没有线程(我的测试mbox确实包含线程对话) 也许我误解了结果应该是什么?或者我只是“做错了”?我在这里的最终目标是能够使用

我试图使用此代码将电子邮件分组到线程中,但文档很少,或者我无法理解它。有没有人以前使用过这段代码,或者使用过它所基于的

这就是我目前所处的位置:

  • 使用Electron我加载并解析本地
    mbox
    使用and
  • 我构建了一个javascript对象数组,其中包含
    messageId
    inReplyTo
    引用的键值对
    
  • 使用来自的示例代码,我尝试构建线程,但显然我做得不对。我没有错误,但也没有线程(我的测试mbox确实包含线程对话)
  • 也许我误解了结果应该是什么?或者我只是“做错了”?我在这里的最终目标是能够使用D3以某种有向图的形式显示结果线程——但如果我不能正确设置数据,这就不会发生




    它是如何工作的还不清楚,但我设法编写了一些打印“线程树”的代码:

    messages
    是一个
    jwz.message()
    对象数组,类似于您创建它的方式)

          function makeThread(emails) {
            var thread = jwz.messageThread().thread(emails.map(
                function (message) {
                    return jwz.message(message.subject, message.messageId, message.references);
                }
            ));
    
            console.log('thread',thread);
           }
    
    function recurse(node, level) {
      level      = level || 0;
      let prefix = '\t'.repeat(level);
    
      (node.children || []).forEach(function(child) {
        child.children = child.children || [];
        console.log(prefix, level ? '' : '-', child.message ? child.message.subject : '??', `[${ child.children.length }]`);
        return recurse(child, level + 1);
      });
    }
    
    recurse(jwz.messageThread().thread(messages));