Why is `crypto.subtle.digest` async?
![](https://programming.dev/pictrs/image/8aa73c24-f2a3-41c7-bbd3-a777419d588a.jpeg)
![](https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png)
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.
You are viewing a single comment
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.
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.
@DmMacniel @vzq
> Given the nature of JS running only on a single thread.
No no, I think you found the language flaw.