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.

  • @[email protected]
    link
    fedilink
    224 days ago

    From browsing your other comments on this thread I understand that you are in a context where you can’t await, that you expect the invocation to take very little time, and that the library offers no complementary sync interface.

    As far was I know you’re stuck in this case. I consider the stubborn refusal to add “resolve this promise synchronously right now” a major flaw in js.

    • macniel
      link
      fedilink
      7
      edit-2
      24 days 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.

      • @[email protected]
        link
        fedilink
        424 days ago

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

        I mean, I understand the idea, but this is a pretty asshole way to frame it. I don’t think I deserve that, and certainly OP doesn’t deserve that.

        • @Kissaki
          link
          English
          124 days ago

          deleted by creator

      • John
        link
        fedilink
        124 days ago

        @DmMacniel @vzq

        > Given the nature of JS running only on a single thread.

        No no, I think you found the language flaw.