JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://code.angularjs.org/1.3.15/angular.min.js"></script>
<body ng-app="myApp">
    <div ng-controller="MyCtrl"></div>
</body>

JavaScript

console.clear();

angular.module("myApp", [])
.controller("MyCtrl", ["$scope", "$window", "$timeout", "$q", function($scope, $window, $timeout, $q) {
    
    var fn = function() {
        var args = Array.prototype.slice.call(arguments);
        debugger;
        var tx = args.shift();
        var i, promiseArray = [];
        for(i=0;i<args.length;i++) {
            promiseArray.push(args[i](tx));
        }
        for(i=0;i<10;i++) {
            var deferred = $q.defer();
            tx.executeSql("SELECT 2*? AS result", [i], (function(deferred) {
                return function(tx, rs) {
                    deferred.resolve(rs.rows.item(0).result);
                };
            })(deferred));
            promiseArray.push(deferred.promise);
        }
        return promiseArray;
    };
    
    var fn2 = function(tx) {
        var deferred = $q.defer();
        tx.executeSql("SELECT ? AS result", [-2], function(tx, rs) {
            deferred.resolve(rs.rows.item(0).result);
        });
        return deferred.promise;
    };
    
    var db = $window.openDatabase("foo", "1.0", "fooDB", 1024);
    
    //This works
    db.transaction(function(tx) {
        $q.all(fn(tx)).then(function(a) {
            console.log("Result:", a);
        });
    });
    
    //This too
    db.transaction(function(tx) {
        $q.all(fn(tx, fn2)).then(function(a) {
            console.log("Result:", a);
        });
    });
    
}]);