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.

  • vzq
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    2 months ago

    deleted by creator

    • Ethan@programming.devOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      6 months ago

      async/await infecting all of my code, being unable to create a get myField() method that involves a hash calculation. It may be standard to do heavy lifting concurrently, but async hash functions are certainly not standard in any of the languages I’ve used (which is quite a few).

      • vzq
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        2 months ago

        deleted by creator

        • macniel@feddit.de
          link
          fedilink
          arrow-up
          7
          ·
          edit-2
          6 months ago

          Given the nature of JS running only on a single thread. Promises/asynchronity is the only way to keep the browser from locking up.

          Thus insisting on any other way is a major flaw in the developer not the language.