top | item 9777739

(no title)

renekooi | 10 years ago

`.call` is a method in some Promise libraries (eg. Bluebird). Basically,

    connection.call('collection', 'users')
is a shorthand for:

    connection.then(value => value.collection('users'))

discuss

order

csytan|10 years ago

Thanks for clarifying. This is a very neat way of removing what would be an extra level of nesting.

It doesn't look like native promises support this unfortunately: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

Another nitpick I have with native promises is that they require an extra level of nesting to get the resolve callback.

    // How it is now
    new Promise(function(resolve, reject) {
        resolve('done');
    });


    // vs. What most libraries implement
    var p = new Promise();
    p.resolve(function() {
        return 'done';
    });

inglor|10 years ago

Both parts are incorrect, the native way is `Promise.resolve('done')`. As for .call - native promises let you subclass them. If you have a promise enabled environment you can use generators anyway. I used Q's syntax because that's what OP used.

Regardless - nice comment.