View should always return promise