Javascript 如何使用来自api url的json填充颜色映射?

Javascript 如何使用来自api url的json填充颜色映射?,javascript,d3.js,Javascript,D3.js,我用一个json文件加载一个地图,该文件用topojson加载数据以生成它。 然后我需要用.attr(“fill”)为状态着色。在这里,我调用一个异步函数,该函数返回带有颜色的值。在控制台日志中返回该值,但在html中它是一个promise对象 我如何解决这个问题 d3.json("/states.json", function (error, us) { if (error) throw error; g.append("g") .attr("id", "states")

我用一个json文件加载一个地图,该文件用topojson加载数据以生成它。 然后我需要用
.attr(“fill”)
为状态着色。在这里,我调用一个异步函数,该函数返回带有颜色的值。在控制台日志中返回该值,但在html中它是一个promise对象

我如何解决这个问题

d3.json("/states.json", function (error, us) {
    if (error) throw error;

g.append("g")
    .attr("id", "states")
    .selectAll("path")
    .data(topojson.feature(us, us.objects.states).features)
    .enter()
    .append("path")
    .attr("d", path)
    .on("click", clicked)
    .on("load", getTotal())
    .attr("fill", async function (d) {
        var value = await getValues(d.properties.IN1)
        console.log(value[0].color)
        return value[0].color;
    });
});

async function getValues(state_id) {
    let response = await fetch("/api/" + state_id);
    let data = await response.json();
    return data;
}