⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
invoice
/
node_modules
/
ext
/
promise
/
View File Name :
limit.js
"use strict"; var ensureNaturalNumber = require("type/natural-number/ensure") , ensurePlainFunction = require("type/plain-function/ensure") , ensure = require("type/ensure") , defineFunctionLength = require("../lib/private/define-function-length"); module.exports = function (limit, callback) { limit = ensure( ["limit", limit, ensureNaturalNumber, { min: 1 }], ["callback", callback, ensurePlainFunction] )[0]; var Promise = this, ongoingCount = 0, pending = []; var onSuccess, onFailure; var release = function () { --ongoingCount; if (ongoingCount >= limit) return; var next = pending.shift(); if (!next) return; ++ongoingCount; try { next.resolve( Promise.resolve(callback.apply(next.context, next.arguments)).then( onSuccess, onFailure ) ); } catch (exception) { release(); next.reject(exception); } }; onSuccess = function (value) { release(); return value; }; onFailure = function (exception) { release(); throw exception; }; return defineFunctionLength(callback.length, function () { if (ongoingCount >= limit) { var context = this, args = arguments; return new Promise(function (resolve, reject) { pending.push({ context: context, arguments: args, resolve: resolve, reject: reject }); }); } ++ongoingCount; try { return Promise.resolve(callback.apply(this, arguments)).then(onSuccess, onFailure); } catch (exception) { return onFailure(exception); } }); };