diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/promise-inflight/inflight.js')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/promise-inflight/inflight.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/promise-inflight/inflight.js b/sandbox/testAppNevena/Front/node_modules/promise-inflight/inflight.js new file mode 100644 index 00000000..ce054d34 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/promise-inflight/inflight.js @@ -0,0 +1,36 @@ +'use strict' +module.exports = inflight + +let Bluebird +try { + Bluebird = require('bluebird') +} catch (_) { + Bluebird = Promise +} + +const active = {} +inflight.active = active +function inflight (unique, doFly) { + return Bluebird.all([unique, doFly]).then(function (args) { + const unique = args[0] + const doFly = args[1] + if (Array.isArray(unique)) { + return Bluebird.all(unique).then(function (uniqueArr) { + return _inflight(uniqueArr.join(''), doFly) + }) + } else { + return _inflight(unique, doFly) + } + }) + + function _inflight (unique, doFly) { + if (!active[unique]) { + active[unique] = (new Bluebird(function (resolve) { + return resolve(doFly()) + })) + active[unique].then(cleanup, cleanup) + function cleanup() { delete active[unique] } + } + return active[unique] + } +} |