Server IP : 66.29.132.122 / Your IP : 3.138.114.113 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/alt-nodejs9/root/usr/lib/node_modules/npm/node_modules/call-limit/ |
Upload File : |
"use strict" var defaultMaxRunning = 50 var limit = module.exports = function (func, maxRunning) { var running = 0 var queue = [] if (!maxRunning) maxRunning = defaultMaxRunning return function limited () { var self = this var args = Array.prototype.slice.call(arguments) if (running >= maxRunning) { queue.push({self: this, args: args}) return } var cb = typeof args[args.length-1] === 'function' && args.pop() ++ running args.push(function () { var cbargs = arguments -- running cb && process.nextTick(function () { cb.apply(self, cbargs) }) if (queue.length) { var next = queue.shift() limited.apply(next.self, next.args) } }) func.apply(self, args) } } module.exports.method = function (classOrObj, method, maxRunning) { if (typeof classOrObj === 'function') { var func = classOrObj.prototype[method] classOrObj.prototype[method] = limit(func, maxRunning) } else { var func = classOrObj[method] classOrObj[method] = limit(func, maxRunning) } } module.exports.promise = function (func, maxRunning) { var running = 0 var queue = [] if (!maxRunning) maxRunning = defaultMaxRunning return function () { var self = this var args = Array.prototype.slice.call(arguments) return new Promise(function (resolve) { if (running >= maxRunning) { queue.push({self: self, args: args, resolve: resolve}) return } else { runNext(self, args, resolve) } function runNext (self, args, resolve) { ++ running resolve( func.apply(self, args) .then(finish, function (err) { finish(err) throw err })) } function finish () { -- running if (queue.length) { var next = queue.shift() process.nextTick(runNext, next.self, next.args, next.resolve) } } }) } } module.exports.promise.method = function (classOrObj, method, maxRunning) { if (typeof classOrObj === 'function') { var func = classOrObj.prototype[method] classOrObj.prototype[method] = limit.promise(func, maxRunning) } else { var func = classOrObj[method] classOrObj[method] = limit.promise(func, maxRunning) } }