将异步方法解析为Javascript中的值

时间:2019-12-10 19:11:54

标签: javascript methods async-await

我的目标是制作一个具有多个用于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而不是实际值,即使在解析后也是如此。

我可能使用错误的模式来访问一个持有异步方法值的对象。

有什么更好的方法?

0 个答案:

没有答案