The following code is absolutely okay.
       function wait(ms) {
            var deferred = $.Deferred();
            setTimeout(deferred.resolve, ms);
            return deferred.promise();
        }
        wait(1500).then(function () {
            console.log("We waited 1500ms");
        });     
If I replace return deferred.promise() with return deferred it seems to me absolutely okay,too. However is there any difference between them or some cases which would produce some unexpected errors? I am wondering for everyone prefers the first version.
Thank you
