to$q made safer by calling util.$apply which checks $$phase in case already in a digest cycle