then method, which registers those callbacks to handle the promise’s eventual value or the reason why the promise cannot be fulfilled.doSomething.method("user", "pass", {
success: function(user) {
query.find({
success: function(results) {
results.save({ key: value }, {
success: function(result) {
// the object was saved.
}
});
}
});
}
});
var promise = function(err, result) {
var deferred = Q.defer();
if (err) {
deferred.reject(new Error(err));
} else {
deferred.resolve(result);
}
return deferred.promise;
};
So, the promise becomes an object that is thenable promise.then(function(result) {
doSomething(result)
});
promise.then(function(result) {
return getSomething(result);
}).then(function(gotten) {
return doSomething(gotten);
}).fail(function(error) {
errorHandle(error);
}).done();
function statusCode(url) {
var deferred = Q.defer();
request.head(url, function(err, response, body) {
if (err) deferred.resolve(err);
deferred.resolve(response);
});
return deferred.promise
};
OR Similarly via Q.nfcall
function statusCode() {
return Q.nfcall(request.head, url)
};statusCode().then(function(data) {
console.log(data.statusCode) \\ returns 200
};