There has been many scenarios where I've needed to know when a DataSource finishes a "read" or "sync" operation. I know there's the global "sync" event that I can bind to, but a lot of the time I only care about the result of one specific sync call. I can use the "one" method to only listen to it once, but this complicates things when I also care about errors. Since I need to register callbacks for both the "sync" and "error" events, and then unregister either one or the other, depending on which event fired. It's even harder hooking into a "read" event because the DataSource doesn't expose one. I know I can hook into the "change" event of the DataSource, but I still have to guess whether the change event was fired because of read, or because of some other change. If these methods returned a deferred it would be a lot easier to handle the circumstances where an app needs to do additional things after a "read" or "sync" is completed.