我正在尝试使用Azure storage SDK for node在表存储中创建一个表,如果它不存在的话。
下面的代码是有效的,返回200响应,但没有响应内容。但是,表是按预期创建的。
经过调查,我可以看到Azure Function应用程序正在记录以下内容-
正在创建表“Test”。
[警告]警告:函数执行完成后,对上下文对象上的“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)
}
});
}