Deferred.promise()
Call .promise() on a Deferred to return a read-only view — callers can add callbacks but cannot resolve or reject it.
Call .promise() on a Deferred to return a read-only view — callers can add callbacks but cannot resolve or reject it.
function fetchData(url) {
const dfd = $.Deferred();
$.getJSON(url)
.done(data => dfd.resolve(data))
.fail(err => dfd.reject(err));
return dfd.promise(); // return promise, not deferred
}
fetchData("/api/users")
.done(users => console.log(users))
.fail(err => console.error(err));
Always return .promise() from functions — never expose the Deferred object itself.