Javascript 如何使用google feed API异步填充sigma.js图形?

Javascript 如何使用google feed API异步填充sigma.js图形?,javascript,asynchronous,rss,visualization,google-feed-api,Javascript,Asynchronous,Rss,Visualization,Google Feed Api,我想使用javascript库Sigmajs将我的wordpress和github活动表示为一个图形网络。我正在使用GoogleFeedAPI获取所有活动的RSS提要,并将它们转换为图上的节点和边 但是feedapi异步返回rss结果。据我所知,sigmajs本机不支持这一点,所以我得到了未定义的引用。在这一点上,它只有大约20-30个节点。一些可能的解决办法是: 强制GoogleFeedAPI同步返回结果。 (不知道怎么做,但我认为这与适当的闭包有关?) 为每个提要结果创建sigma实例,并将

我想使用javascript库Sigmajs将我的wordpress和github活动表示为一个图形网络。我正在使用GoogleFeedAPI获取所有活动的RSS提要,并将它们转换为图上的节点和边

但是feedapi异步返回rss结果。据我所知,sigmajs本机不支持这一点,所以我得到了未定义的引用。在这一点上,它只有大约20-30个节点。一些可能的解决办法是:

  • 强制GoogleFeedAPI同步返回结果。 (不知道怎么做,但我认为这与适当的闭包有关?)

  • 为每个提要结果创建sigma实例,并将所有图形对象推送到单个实例中。 (不确定是否可能,而且库中没有足够的文档来尝试)

  • 每次返回结果时触发一个事件,以确保西格玛一次只处理一个事件。 (同样,我不知道该怎么做)

  • 非常感谢您的指导。谢谢

    这是我到目前为止的工作
    更多示例和来源

    我使用的解决方案是触发一个自定义事件。由于javascript的同步事件处理队列,它似乎可以正常工作

    function getFeed()
    {
        return function callback(result) 
        {
            if (!result.error)
            {
                console.log("Feed retrieved.");
                fireFeed(result.feed);
            }
            else 
                console.log("Feed retrieval failed!");
        }
    }
    
    function fireFeed(feed)
    {
        //console.log(feed);
        var event = new CustomEvent(
        "newFeed",
        {
            detail: {
                message: feed
            },
            bubbles: true,
            cancelable: true
        }
        );
        document.dispatchEvent(event);
    }
    
    document.addEventListener('newFeed', function(e)
            {
                var feed = e.detail.message;
                console.log('feed triggered');
                //console.log(feed);
                buildFeed(feed);
            },true);