diff --git a/snippets/hashNode.md b/snippets/hashNode.md index b8cf0bca7..990d5d64e 100644 --- a/snippets/hashNode.md +++ b/snippets/hashNode.md @@ -1,11 +1,14 @@ --- title: hashNode -tags: node,promise,intermediate +tags: node,promise,advanced --- -Creates a hash for a value using the [SHA-256](https://en.wikipedia.org/wiki/SHA-2) algorithm. Returns a promise. +Creates a hash for a value using the [SHA-256](https://en.wikipedia.org/wiki/SHA-2) algorithm. +Returns a promise. -- Use `crypto` API to create a hash for the given value, `setTimeout` to prevent blocking on a long operation, and a `Promise` to give it a familiar interface. +- Use `crypto.createHash()` to create a `Hash` object with the appropriate algorithm. +- Use `hash.update()` to add the data from `val` to the `Hash`, `hash.digest()` to calculate the digest of the data. +- Use `setTimeout()` to prevent blocking on a long operation, and return a `Promise` to give it a familiar interface. ```js const crypto = require('crypto'); @@ -13,18 +16,15 @@ const crypto = require('crypto'); const hashNode = val => new Promise(resolve => setTimeout( - () => - resolve( - crypto - .createHash('sha256') - .update(val) - .digest('hex') - ), + () => resolve(crypto.createHash('sha256').update(val).digest('hex')), 0 ) ); ``` ```js -hashNode(JSON.stringify({ a: 'a', b: [1, 2, 3, 4], foo: { c: 'bar' } })).then(console.log); // '04aa106279f5977f59f9067fa9712afc4aedc6f5862a8defc34552d8c7206393' +hashNode(JSON.stringify({ a: 'a', b: [1, 2, 3, 4], foo: { c: 'bar' } })).then( + console.log +); +// '04aa106279f5977f59f9067fa9712afc4aedc6f5862a8defc34552d8c7206393' ```