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.

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

    Sounds like an architectural issue to begin with. A constructor shouldn’t do the heavy lifting to begin with.

    • EthanOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      3
      ·
      6 months ago

      You consider calculating the hash of a few bytes to be heavy lifting?

      • macniel@feddit.de
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        6 months 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.