Reputation: 816
I am calling func2(which should return promise) but promise is not getting resolved.Am I resolving promise wrongly or is there any other problem.Please let me know what is the problem in following code?
function func1() {
func2().then(function (data) {
console.log(data);
})
}
var func2 = function () {
var d = q.defer();
var postRequest = {
host: "abc",
path: "/xyz",
};
var buffer = "";
var req = http.request( postRequest, function( res ) {
var buffer = "";
res.on( "data", function( data ) {
console.log("data\n");
buffer = buffer + data;
});
res.on( "end", function( data ) {
d.resolve(data);
return d.promise;
});
});
console.log('after req');
req.write(body);
req.end();
};
Upvotes: 0
Views: 294
Reputation: 31479
You need to return the promise at the very end of the function. Try
function func1() {
func2().then(function (data) {
console.log(data);
}).catch(function (error) {
// Handle any error from all above steps
console.log("Got error:" + error);
})
.done();
}
var func2 = function () {
var d = q.defer();
var postRequest = {
host: "abc",
path: "/xyz",
};
var buffer = "";
var req = http.request( postRequest, function( res ) {
var buffer = "";
res.on( "data", function( data ) {
console.log("data\n");
buffer = buffer + data;
});
res.on( "end", function( data ) {
d.resolve(buffer);
});
res.on( "error", function( err ) {
d.reject(err);
});
});
console.log('after req');
req.write(body);
req.end();
return d.promise;
};
Upvotes: 3