Build Promise based on Deferred.
Build JqXHR by macros.