[what i want to do]
I created a rank-3 tensor.
Then I got a flattened 1D array of all the values in this tensor by using tensor.data() method.
I want to assign each element of this flattened array as value of an object.

[what is the problem]
I’m unable to obtain the individual elements of the array using a.data().then((data) => { card.value = data[i] }); .
console.log(card.value) returns undefined.
However, using card.value = a.dataSync()[i]; seems to work, instead.

[main.js]
import * as tf from "@tensorflow/tfjs";

import Card from "./Card.js";

// create a rank-3 tensor 
const a = tf.randomNormal([4, 3, 2]);
a.print();

// assign values in the tensor to a series of div object 
for (let i = 0; i < a.size; i += 1) {
        // create card object
        const card = new Card(i, "card " + String(i), "96px", "96px");

        // assign a value to card
        // [method 1] using synchronous method works 
        // card.value = a.dataSync()[i];

        // [method 2] using asynchronous method is not working ... 
        a.data().then((data) => { card.value = data[i] });

        console.log(card.value);


[Card.js]
export default class Card {
    // constructor
    constructor(_idx, _name, _width, _height, _posx, _posy, _posz, _value) {
        this.idx = _idx;
        this.name = _name;

        this.width = _width;
        this.height = _height;

        this.posx = _posx;
        this.posy = _posy;
        this.posz = _posz;

        this.value = _value;
    }
}