Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const pr = (shouldResolve = true, time = 5000) => {
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- console.log(`this promise is ${shouldResolve}`);
- if (shouldResolve) {
- resolve();
- } else {
- reject(new Error('failed'));
- }
- }, time);
- });
- };
- const prs = [() => pr(true), () => pr(false, 10000), () => pr(true)];
- function synchronousPromiseResolver(promises) {
- const copyOfPromises = [...promises];
- const promisesAnswer = [];
- return new Promise((resolve, reject) => {
- const prResolver = function(promise) {
- if (!promises.length || !promise) {
- return resolve(promisesAnswer);
- }
- promise()
- .then(data => {
- promisesAnswer.push(data);
- prResolver(copyOfPromises.shift());
- })
- .catch(err => {
- reject(err);
- });
- };
- prResolver(copyOfPromises.shift());
- });
- }
- synchronousPromiseResolver(prs);
Add Comment
Please, Sign In to add comment