I think you want to actually return a deferred of some sort since a read is async, right? You never actually "return" that data array but you do pass it into the success callback.