1)JWT token:
const jwt = require('jsonwebtoken');
A JWT token consists of three parts separated by dots (.
):
- Header: Contains metadata about the type of token and the hashing algorithm used.
- Payload (Claims): Contains the claims or statements about the subject of the token, such as user ID, roles, etc.
- Signature: Verifies that the sender of the JWT is who it says it is and ensures that the message wasn't changed along the way. It is header +payload +secret key.
Methods:
const newToken = jwt.sign(payload, secretKey, { expiresIn: '1h' });
- Use
verify()
when you need to ensure the token's integrity and authenticity. - Use
decode()
when you only need to extract information from the token and don't need to verify its signature.
- Use
2)Window ,this,global:
In nodejs this and global refers to same global methods and varibales just that no dom related things that are in window.
In nodejs no window.
3)a.getSum();
// Define the custom method getSum() on the Array prototype
Array.prototype.getSum = function() {
// Check if the array is empty
if (this.length === 0) {
return 0;
}
// Calculate the sum of all elements in the array
return this.reduce((total, num) => total + num, 0);
};
// Test the custom method
const a = [1, 3, 4];
console.log(a.getSum()); // Output: 8
4)Promise.all vs allsettled vs race:
Promise.all() takes an array of promises and returns a single promise that resolves when all of the promises in the array have resolved, or rejects if any of the promises reject. It waits for all promises to settle, whether they fulfill or reject.
javascript
Copy code
const promise1 = Promise.resolve('One');
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'Three');
});
Promise.all([promise1, promise2, promise3])
.then(values => {
console.log(values); // Output: ['One', 42, 'Three']
})
.catch(error => {
console.error(error);
});
2. Promise.allSettled()
Promise.allSettled() takes an array of promises and returns a single promise that resolves after all of the given promises have settled, i.e., either fulfilled or rejected. The resulting promise's fulfillment value is an array of objects representing the outcome of each promise.
javascript
Copy code
const promise1 = Promise.resolve('One');
const promise2 = Promise.reject(new Error('Rejected'));
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'Three');
});
Promise.allSettled([promise1, promise2, promise3])
.then(results => {
console.log(results);
/* Output: [
{ status: 'fulfilled', value: 'One' },
{ status: 'rejected', reason: Error: Rejected },
{ status: 'fulfilled', value: 'Three' }
]
*/
});
Promise.race() takes an array of promises and returns a single promise that resolves or rejects as soon as one of the promises in the iterable resolves or rejects, with the value or reason from that promise.
javascript
Copy code
const promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'One');
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 200, 'Two');
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 300, 'Three');
});
Promise.race([promise1, promise2, promise3])
.then(value => {
console.log(value); // Output: One
});
In summary:
Promise.all() waits for all promises to settle, either fulfill or reject.
Promise.allSettled() waits for all promises to settle, regardless of fulfillment or rejection.
Promise.race() waits for the first settled promise, whether it fulfills or rejects.
Comments
Post a Comment