如何调用JavaScript异步函数并从中获取结果对象,而不是诺言?

时间:2020-04-07 12:03:18

标签: javascript promise synchronization

我在浏览器中运行了一些JavaScript代码,其中有一个非常复杂的对象,并且其中一个字段包含一个字符串,我需要用该字符串的哈希替换。内置了SHA-512实现,但是我无法弄清楚如何同步调用它,以使执行暂停并等待结果。我尝试了此操作(适应了from here):

digestMessage = async (dataString) => {
    let encoder = new TextEncoder();
    let data = encoder.encode(dataString);
    const hash = await crypto.subtle.digest('SHA-512', data);
    return hash;
};

digest = async (data) => {
    try {
        const result = await digestMessage(data);
        return result;
    } catch (error) {
        throw error;
    }
};

调用:

myObject.fieldToTransform = digest(myObject.fieldToTransform);
//continue with the object

而且...当然,这给了我另一个诺言对象。用.then()重写调用代码会使代码复杂化。我想要哈希,而不是诺言,以便我通过存储该哈希并将其进一步传递。

我如何计算哈希值,而不是答应?

0 个答案:

没有答案