3 ms·
I'm a little unclear on this stuff: connection.call('collection', 'users'); Is `connection` a function? As in, you're essentially using Function#call and pa
by kevincennis 11y ago
I'm a little unclear on this stuff:
connection.call('collection', 'users');
Is `connection` a function? As in, you're essentially using Function#call and passing the string 'collection' as `thisArg`?
Or is `call` a custom method of whatever `connection` is an instance of?
I was under the impression from the article that `DatabaseClient` was just sort of an example, not a specific implementation of anything.
It seems like you're making some unusual assumptions about its API – unless I'm totally missing something.
- renekooi 11y 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'))
- csytan 11y agoThanks 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/Reference/Global_Objects/Promise 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 11y agoBoth 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.