[
https://issues.apache.org/jira/browse/THRIFT-2376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13912194#comment-13912194
]
Hudson commented on THRIFT-2376:
--------------------------------
SUCCESS: Integrated in Thrift #1062 (See
[https://builds.apache.org/job/Thrift/1062/])
THRIFT-2376 nodejs: allow Promise style calls for client and server (henrique:
rev 312362314c23ba199fca5c92868f6411afd2fc63)
* lib/nodejs/test/client.js
* tutorial/nodejs/NodeClientPromise.js
* tutorial/nodejs/Makefile.am
* lib/nodejs/test/server.js
* tutorial/nodejs/NodeServerPromise.js
* tutorial/nodejs/NodeClient.js
* lib/nodejs/test/thrift_test_driver_promise.js
* lib/nodejs/test/testAll.sh
* lib/nodejs/package.json
* compiler/cpp/src/generate/t_js_generator.cc
* lib/nodejs/test/test_handler_promise.js
> nodejs: allow Promise style calls for client and server
> -------------------------------------------------------
>
> Key: THRIFT-2376
> URL: https://issues.apache.org/jira/browse/THRIFT-2376
> Project: Thrift
> Issue Type: Improvement
> Components: Node.js - Compiler
> Affects Versions: 0.9.2
> Reporter: Pierre Lamot
> Assignee: Henrique Mendonça
> Fix For: 0.9.2
>
> Attachments:
> 0001-THRIFT-2376-nodejs-allow-Promise-style-calls-for-cli.patch
>
>
> the idea of this patch is to allow writing server functions and clients calls
> using future/promise style.
> for instance a server function:
> {code:javascript}
> {
> divide: function(n1, n2, result) {
> if (n2 === 0) {
> var x = new ttypes.InvalidOperation();
> result(x);
> return;
> }
> result(null, n1/n2);
> }
> }
> {code}
> might be written as:
> {code:javascript}
> {
> divide: function(n1, n2) {
> if (n2 === 0) {
> throw new ttypes.InvalidOperation();
> }
> return n1/n2;
> }
> }
> {code}
> both style remains valid, the style to use is detected according to the
> function signature (is there a last argument for the callback).
> when using promise style, a promise can also be return in stead of the result
> for asynchronous results.
> the client side might use promise as well:
> {code:javascript}
> client.calculate(1, work, function(err, message) {
> if (err) {
> console.log("InvalidOperation " + err);
> } else {
> console.log('Whoa? You know how to divide by zero?');
> }
> });
> {code}
> might be written as:
> {code:javascript}
> client.calculate(1, work)
> .then(function(message) {
> console.log('Whoa? You know how to divide by zero?');
> })
> .fail(function(err) {
> console.log("InvalidOperation " + err);
> });
> {code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)