Skip to content

Commit 54382e1

Browse files
Merge pull request #76 from trayio/CPS-217/b/non-async-function-method-throws
CPS-217: non async function method throws suuport bug fix
2 parents 3522602 + ccf6854 commit 54382e1

File tree

5 files changed

+1073
-203
lines changed

5 files changed

+1073
-203
lines changed

lib/addMethod/addMethodFunction.js

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
var _ = require('lodash');
2-
var when = require('when');
3-
var logger = require('../logger');
1+
const _ = require('lodash');
2+
const when = require('when');
3+
const logger = require('../logger');
44

5-
var globalize = require('./globalize');
5+
const globalize = require('./globalize');
66

77
//The format of the response should always be an object with headers and body
8-
var formatResponse = require('./formatResponse');
8+
const formatResponse = require('./formatResponse');
99

1010
module.exports = function (threadneedle, config, afterHeadersFunction, params) {
1111

12-
var afterHeadersConfig = {};
12+
const afterHeadersConfig = {};
1313
if (_.isFunction(afterHeadersFunction)) {
1414
afterHeadersConfig.afterHeaders = afterHeadersFunction;
1515
} else {
@@ -18,38 +18,34 @@ module.exports = function (threadneedle, config, afterHeadersFunction, params) {
1818
}
1919
}
2020

21-
return when.promise(function(resolve, reject) {
22-
when(config.call(threadneedle, params))
23-
.done(
24-
function(body) {
25-
26-
globalize.afterHeaders.call(threadneedle, afterHeadersConfig, null, body, params, null)
27-
28-
.done(
29-
function(headers) {
30-
resolve(formatResponse(headers, body));
31-
},
32-
function(afterHeadersError) {
33-
reject(formatResponse({}, afterHeadersError));
34-
}
35-
);
36-
37-
},
38-
function(functionError) {
39-
40-
globalize.afterHeaders.call(threadneedle, afterHeadersConfig, functionError, null, params, null)
41-
42-
.done(
43-
function(headers) {
44-
reject(formatResponse(headers, functionError));
45-
},
46-
function(afterHeadersError) {
47-
reject(formatResponse({}, afterHeadersError || functionError));
48-
}
49-
);
50-
21+
return when.promise((resolve, reject) => {
22+
new Promise((resolve, reject) => {
23+
try {
24+
resolve(config.call(threadneedle, params));
25+
} catch (functionCallError) {
26+
reject(functionCallError);
5127
}
52-
);
28+
})
29+
.then((body) => {
30+
globalize.afterHeaders.call(threadneedle, afterHeadersConfig, null, body, params, null)
31+
32+
.then((headers) => {
33+
resolve(formatResponse(headers, body));
34+
})
35+
.catch((afterHeadersError) => {
36+
reject(formatResponse({}, afterHeadersError));
37+
});
38+
})
39+
.catch((functionError) => {
40+
globalize.afterHeaders.call(threadneedle, afterHeadersConfig, functionError, null, params, null)
41+
42+
.then((headers) => {
43+
reject(formatResponse(headers, functionError));
44+
})
45+
.catch((afterHeadersError) => {
46+
reject(formatResponse({}, afterHeadersError || functionError));
47+
});
48+
});
5349
});
5450

55-
};
51+
};

0 commit comments

Comments
 (0)