Я очень новичок в Javascript. Я столкнулся с проблемой создания динамического выпадающего списка с табличными данными BigQuery в Node.js. Я уже получил данные таблицы из BigQuery и сделал статический выпадающий список, но я понятия не имею, как поместить данные таблицы в выпадающий список. Кто-нибудь может мне помочь? Извините за мой плохой код.

index.js


const {BigQuery} = require('@google-cloud/bigquery');
  
const bigquery = new BigQuery({
    projectId: 'test_project',
});

bigquery
    .dataset("test_table")
    .getTables()
    .then(results => {
        const tables = results[0];
        tables.forEach(table => console.log(table.id));
    })
    .catch(err => {
        console.error('ERROR:', err);
    });

const list = ["I want to put table data(tables) in here"];
// select tag
let slt = document.getElementById("slt");
addTables(slt);

// return data 
function getList() {
  return new Promise(function (onFulliflled, onRejected) {
    onFulliflled(list);
  });
}

function addTables(slt) {
  getList()
    .then((list) => {
      for (item of list) {
        // make option
        let option = document.createElement("option");
        option.text = item;
        option.value = item;

        // add option
        slt.appendChild(option);
      }
    })
    .catch((err) => {
      console.error("error", err);
    });
}

index.html




    
        
        sample
  
  
      

Please choose table

Ответы (1)

Я решил эту проблему с помощью приведенного ниже кода

function listTables(callback) {
    //...

        .then(results => {
            const tables = results[0];
            tables.forEach(table => list.push(table.id));
            callback(list);
        })
    //...
}

listTables(function(list){

});

2022 WebDevInsider