Как мне вызвать функцию JavaScript asyn c и получить из нее объект результата, а не обещание? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть некоторый код JavaScript, запущенный в браузере, где у меня есть очень сложный объект, и одно из его полей содержит строку, которую мне нужно заменить на ха sh этой строки. Есть встроенная реализация SHA-512, но я не могу понять, как ее вызывать синхронно, так что выполнение приостанавливается и ждет результата. Я попробовал это (адаптировано отсюда ):

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() значительно усложнит это. Я хочу ха sh, а не обещание, чтобы передать хранилище с ха sh и передать его дальше.

Как мне вычислить га sh, не обещали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...