Make require.linearExecution behave like Alameda WRT Promises
authorTim Düsterhus <duesterhus@woltlab.com>
Thu, 8 Nov 2018 19:33:19 +0000 (20:33 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 8 Nov 2018 19:34:55 +0000 (20:34 +0100)
If a callback is given the return value of that callback should be passed
as the return value of the Promise, instead of the resolved dependencies.

wcfsetup/install/files/js/require.linearExecution.js

index 06d4d22a3259627b1e8f17782f4f4afe5ee623ae..7362963bbe506f9ee0967c2584a4b8b140006879 100644 (file)
@@ -2,6 +2,8 @@
        var orgRequire = window.require;
        var queue = [];
        var counter = 0;
+
+       window.orgRequire = orgRequire
        
        window.require = function(dependencies, callback, errBack) {
                if (!Array.isArray(dependencies)) {
@@ -26,8 +28,8 @@
                });
                
                if (callback) {
-                       promise.then(function (objects) {
-                               callback.apply(window, objects);
+                       promise = promise.then(function (objects) {
+                               return callback.apply(window, objects);
                        });
                }
                if (errBack) {