joelbarbosa
9/18/2017 - 9:18 PM

JS Bin // source https://jsbin.com/jazelig

JS Bin

// source https://jsbin.com/jazelig

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>

<script id="jsbin-javascript">
var a = new Promise(res => setTimeout(()=>{ 
          res(1)
        }, 2000));

var b = new Promise(res => setTimeout(()=>{    
        res(2)
        }, 1000));

var c = (fn) => new Promise(res => console.log(fn)); 

var arr = [a, b];
arr.reduce(function(promise, next) {
    return promise.then(_ => next).then( value => {
        console.log(value); // ***
        return value;
    });
}, Promise.resolve());

//hardcode
a.then(r1 => r1.then(c(r1).then(b.then(r2 => r2.then(c(r2))))))
</script>



<script id="jsbin-source-javascript" type="text/javascript">var a = new Promise(res => setTimeout(()=>{ 
          res(1)
        }, 2000));

var b = new Promise(res => setTimeout(()=>{    
        res(2)
        }, 1000));

var c = (fn) => new Promise(res => console.log(fn)); 

var arr = [a, b];
arr.reduce(function(promise, next) {
    return promise.then(_ => next).then( value => {
        console.log(value); // ***
        return value;
    });
}, Promise.resolve());

//hardcode
a.then(r1 => r1.then(c(r1).then(b.then(r2 => r2.then(c(r2))))))</script></body>
</html>
var a = new Promise(res => setTimeout(()=>{ 
          res(1)
        }, 2000));

var b = new Promise(res => setTimeout(()=>{    
        res(2)
        }, 1000));

var c = (fn) => new Promise(res => console.log(fn)); 

var arr = [a, b];
arr.reduce(function(promise, next) {
    return promise.then(_ => next).then( value => {
        console.log(value); // ***
        return value;
    });
}, Promise.resolve());

//hardcode
a.then(r1 => r1.then(c(r1).then(b.then(r2 => r2.then(c(r2))))))