On Wed, Oct 31, 2012 at 1:37 PM, alphanull <
kude...@alphanull.de> wrote:
> var deferred = Q.defer(),
> data = localStorage.getItem(key);
> return (data !== undefined) ? deferred.resolve(data) : deferred.reject({
> status: 404 });
This would suffice since you aren’t resolving in a future turn:
var data = localStorage.getItem(key);
return data !== undefined ? Q.resolve(data) : Q.reject({status: 404});
If you were resolving in a future turn you would actually need
Q.defer() and it would look like:
var deferred = Q.defer();
localStorage.getItem(key, function (data) {
if (data !== undefined) {
deferred.resolve(data);
} else {
deferred.reject({status: 404});
}
});
return deferred.promise;
Bear in mind that returning a promise strongly corrales the user into
using the data asynchronously, regardless of whether the promise is
resolved in the same turn or a future turn. You will never need to
explicitly resolve in a setTimeout block. Q wraps your callbacks
implicitly, and usually in a way that performs better than setTimeout.
Kris Kowal