Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const async = require('async');
- function step1() {
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- resolve("success step1")
- }, 1000)
- })
- }
- let triesLeft = 5;
- function step2() {
- const myFunc = (callback) => {
- triesLeft--
- console.log("Step2 tries left:", triesLeft);
- setTimeout(() => {
- if (triesLeft > 0) { // Fail 5 times
- return callback({ message: 'FAIL' }, null);
- }
- return callback(null, "success step2");
- }, 0)
- }
- return new Promise((resolve, reject) => {
- async.retry(
- { times : 25, interval : 1000 },
- myFunc,
- (err, result) => {
- if (result) {
- return resolve(result);
- } else {
- return reject(err);
- }
- }
- );
- });
- }
- function step3() {
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- resolve("success step3")
- }, 1000)
- })
- }
- step1()
- .then((result) => {
- console.log(`step1 result: ${result}`)
- return step2()
- })
- .then((result) => {
- console.log(`step2 result: ${result}`)
- return step3()
- })
- .then((result) => {
- console.log(`step3 result: ${result}`)
- })
- .catch((err) => {
- console.log("failed")
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement