Thanks to visit codestin.com
Credit goes to programming.dev

Why is crypto.subtle.digest designed to return a promise?

Every other system I’ve ever worked with has the signature hash(bytes) => bytes, yet whatever committee designed the Subtle Crypto API decided that the browser version should return a promise. Why? I’ve looked around but I’ve never found any discussion on the motivation behind that.

  • EthanOP
    Codestin Search App
    Codestin Search App
    English
    Codestin Search App
    4
    Codestin Search App
    2
    ·
    2 years ago

    just use await in an async function.

    Sure, I’ll just put await and async everywhere. Oh wait, I can’t. A constructor can’t be async so now I need to restructure my code to use async factories instead of constructors. Wonderful…

    • vzq@lemmy.blahaj.zone
      Codestin Search App
      Codestin Search App
      Codestin Search App
      3
      ·
      2 years ago

      A constructor can’t be async so now I need to restructure my code to use async factories instead of constructors

      It sounds like you’re trying to do OOD/OOP. In js that’s usually not the way to go. You might want to restructure into a more functional architecture anyway.

        • macniel@feddit.de
          Codestin Search App
          Codestin Search App
          Codestin Search App
          4
          Codestin Search App
          1
          ·
          2 years ago

          The API doesn’t restrict the amount of bytes to be hashed. So yeah it’s still heavy lifting.

          Trigger a loading event after the constructor is finished that the view model takes to calculate your hash.