我的目标是制作一个具有多个用于Azure存储表的共享访问签名(SAS)的对象。一种“密钥库”,其中包含许多我可以随意使用的签名。
所以我创建了一个Azure函数,该函数在被调用时会回复SAS。
此javascript函数使用对该Azure函数的Ajax调用,如下所示:
function fnGetTableSas(Table) {
let strURL = SAS_GENERIC_TABLE_URI + "?table=" + Table;
$.ajax({
type: 'GET',
headers: {"x-functions-key": "supersecretkeyhere=="},
url: strURL,
})
.done(function (data) {
return(data);
})
.fail(function (error) {
return(error);
});
}
然后使用这些方法创建以下对象:
var SAS = {
pageTable: async function () {
await (fnGetTableSas("staging"))
},
orgTable: async function () {
await(fnGetTableSas("organizations"))
},
userTable: async function () {
await(fnGetTableSas("users"))
},
};
但是,当我使用page = SAS.pageTable();
时,page是一个Promise而不是实际值,即使在解析后也是如此。
我可能使用错误的模式来访问一个持有异步方法值的对象。
有什么更好的方法?