@Luminerys

Почему моя асинхронная функция возвращает Promise {} вместо значения?

У меня есть вызов функции
console.log(WebCrypto())
И сама функция WebCrypto
export async function WebCrypto(encrypted, saveName, saveData){
  var mode = 'AES-GCM',
      length = 256,
      ivLength = 12;

  if (encrypted) {
    var result = await encrypt(saveData, saveName, mode, length, ivLength)
    return result;
  } else {
    var result = await decrypt(saveData, saveName, mode, length)
    return result;
  }
};

Она должна возвращать
{ cipherText: ArrayBuffer, iv: Uint8Array }
но вместо этого я получаю:
Promise {<pending>}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Object
cipherText: ArrayBuffer(30) {}
iv: Uint8Array(12) [117, 8, 180, 132, 15, 200, 70, 62, 254, 82, 38, 192]
__proto__: Object
  • Вопрос задан
  • 644 просмотра
Решения вопроса 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
console.log(await WebCrypto())
Ответ написан
Ну так асинхронная функция и должна возвращать промис.

Уберите слово async в объявлении.

Как вы вообще себе представляете асинхронное получение значения без промиса?
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Потому что асинхронные функции - это синтаксический сахар для промисов, они промисы и возвращают.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы