Aufzeichnen des Zustandsnamens auf der Karte unter Verwendung von Knoten js und D3 in Echtzeit

Ich habe versucht, die Namen der Staaten auf der Karte mit dem Redis Pub / Sub-System, Node js und D3 zu zeichnen. Das Problem ist, dass wenn ich zum ersten Mal einen Status in einem Redis-Kanal eingebe, dieser perfekt dargestellt wird, aber wenn ich den zweiten Status eingebe, passiert nichts. Da ich neu bei D3.js bin, kann ich das Problem nicht herausfinden. Jede Hilfe wird geschätzt. Vielen Dank

d3.json("india-states.json", function (json) {
    india.selectAll("path")
    .data(json.features)
    .enter().append("path")
    .attr("d", path);
    var socket = io();
    socket.on('tags', function(data){
        console.log(data.message1);
        india.selectAll("text")
        .data(json.features)
        .enter()
        .append("text")
        .attr("fill", "black")
        .attr("transform", function(d) {
            console.log(data.message1 + "Second Time"); 
            var centroid = path.centroid(d);
            return "translate(" + centroid[0] + "," + centroid[1] + ")"
        })
        .attr("text-anchor", "middle")
        .attr("dy", ".35em")
        .style('fill', 'white')
        .text(function(d) {
            console.log("2");
            if (d.id == data.message1) {
                console.log("1");    
                return data.message1;
            }
        });
    });
});

Ich habe versucht, meinen Code zu durchsuchen, und festgestellt, dass der Statusname jedes Mal korrekt abgerufen wird. Aber nur im ersten Versuch geht der Zustandsname vorwärts nach

console.log(data.message1);

In allen anderen Fällen bekomme ich nur eine Konsolenausgabe und das ist "console.log (data.message1);"

Antworten auf die Frage(2)

Ihre Antwort auf die Frage