Я пытаюсь использовать SDK хранилища Azure для узла для создания таблицы в хранилище таблиц, если она не существует.
Следующий код действителен и возвращает ответ 200, хотя нетсодержание ответа.Однако таблица создается, как и ожидалось.
После исследования я вижу, что приложение-функция Azure регистрирует следующее -
Создание таблицы «Тест».
[warn] Предупреждение: неожиданный вызов 'log' для объекта контекста после завершения выполнения функции.Пожалуйста, проверьте асинхронные вызовы, которые не ожидаются, или вызовы «done», выполненные до завершения выполнения функции.
Так что, похоже, что хотя createTableInTableStore
работает, как ожидалось, часть асинхронного ожидания / ожиданиямоя функция неЯ подозреваю, что я делаю что-то не так, но, судя по всему, я правильно реализую await
как и когда это требуется.
Как заставить функцию ждать, пока метод createTableInTableStore
завершить, прежде чем двигаться дальше?
Пример кода
Обратите внимание, что требуется пакет Azure-Storage npm (npm install azure-storage
).
module.exports = async function (context) {
var azure_storage = require('azure-storage');
var table_service = azure_storage.createTableService(process.env["AzureWebJobsStorage"]);
var create_table_result = await createTableInTableStore(context, table_service, "Test");
return {
res: create_table_result
};
};
async function createTableInTableStore(context, table_service, table_name) {
context.log("Creating table '"+table_name+"'.");
return await table_service.createTableIfNotExists(table_name, function(error, result, response) {
if (!error && result) {
context.log.info("[Info] Table created successfully.")
} else if (!error && !result) {
context.log.info("[Info] Table already exists.")
}
if (error) {
context.log.error("[Error] An unexpected error occurred.")
context.log.error(" -----> " + response)
}
});
}