AsyncResult based on promises