Построение названия состояний на карте с использованием узлов js и D3 в режиме реального времени

Я пытался нанести на карту названия штатов, используя Redis Pub / Sub system, Node js и D3. Проблема заключается в том, что когда я впервые печатаю в состоянии на канале Redis, оно отображается идеально, но когда я печатаю во втором состоянии, ничего не происходит. Так как я новичок в D3.js, не могу понять проблему. Любая помощь будет оценена. Благодарю.

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;
            }
        });
    });
});

Я попытался исследовать мой код и обнаружил, что он каждый раз правильно выбирает имя состояния. Но только с первой попытки название штата идет вперед после

console.log(data.message1);

Во всех других случаях я получаю только один вывод на консоль, и это «console.log (data.message1);»

Ответы на вопрос(1)

Ваш ответ на вопрос