2

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

Unknown developer
  • 5,414
  • 13
  • 52
  • 100
  • 1
    returning deferred would return an object with resolve/reject methods (and others no doubt) ... returning deferred.promise() should return an object that does not have those methods - true "Promise/A+" promises do NOT have the resolve/reject methods in the returned object – Jaromanda X Feb 04 '16 at 11:48
  • In some libraries deferreds and promises have different interfaces: promises are thenable, deferreds are not. – raina77ow Feb 04 '16 at 11:50

0 Answers0