У меня есть некоторый код 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, не обещали?