const randomIntegerFromInterval = (min, max) => {
return Math.floor(Math.random() * (max - min + 1) + min);
};
const makeTransaction = (transaction) =>
new Promise((res, rej) => {
const delay = randomIntegerFromInterval(200, 500);
setTimeout(() => {
const canProcess = Math.random() > 0.3;
if (canProcess) {
res(transaction.id, randomIntegerFromInterval(200, 500));
} else {
rej(transaction.id);
}
}, delay);
});
const logSuccess = (id, time) => {
console.log(`Transaction ${id} processed in ${time}ms`);
};
const logError = (id) => {
console.warn(`Error processing transaction ${id}. Please try again later.`);
};
makeTransaction({ id: 70, amount: 150 }).then(logSuccess).catch(logError);
makeTransaction({ id: 71, amount: 230 }).then(logSuccess).catch(logError);
makeTransaction({ id: 72, amount: 75 }).then(logSuccess).catch(logError);
makeTransaction({ id: 73, amount: 100 }).then(logSuccess).catch(logError);
For some reason, I keep getting an undefined value. Haven't find out why it's going on like that.
the output is has to be something like. Please explain what is the problem, or what should I change.
task_3.js:23 Error processing transaction 73. Please try again later.
task_3.js:19 Transaction 70 processed in 458ms
task_3.js:19 Transaction 72 processed in 354ms
task_3.js:23 Error processing transaction 71. Please try again later.