Я хочу не использовать обещание, так как не хочу ждать завершения задания большого запроса:
Вы можете установить свой собственный jopIdв объекте метаданных, чтобы отслеживать состояние задания и избегать ожидания ответа на обещание.
Из документации класса BigQuery Load
- @ param {string} [metadata.jobId] Пользовательский идентификатор для основного задания.
- @ param {string} [metadata.jobPrefix] Префикс, применяемый к базовому идентификатору задания.
Это ссылка на пример в c # того, какчтобы сделать это
Однако, исходя из вашего описания, похоже, что у вас есть ошибка, которую вы пропустили в процессе.Я предлагаю вам попробовать Async/Await
вместо promise
, где это возможно, чтобы упростить ваш код и помочь в устранении неполадок
// Imports the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const projectId = "your-project-id";
// const filename = "/path/to/file.csv";
// const datasetId = "my_dataset";
// const tableId = "my_table";
// Creates a client
const bigquery = new BigQuery({projectId});
// Loads data from a local file into the table
const [job] = await bigquery
.dataset(datasetId)
.table(tableId)
.load(filename);
console.log(`Job ${job.id} completed.`);
// Check the job's status for errors
const errors = job.status.errors;
if (errors && errors.length > 0) {
throw errors;
}