Implementation:

    function unwrap(value) {
        return Promise.resolve(value).then(v => isPromise(v) ? unwrap(v) :
v);
    }

    Promise.when = value => unwrap(value);

Test:

    var promise = new Promise(r => {
        r.fulfill(new Promise(r => { r.fulfill(1); }));
    });

    promise.then(val => console.log(val.then ? "promise" : "value"));
    Promise.when(promise).then(val => console.log(val.then ? "promise" :
"value"));

    >> promise
    >> value

{ Kevin }
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to