Cleanup
This commit is contained in:
15
node_modules/mongoose/lib/helpers/promiseOrCallback.js
generated
vendored
15
node_modules/mongoose/lib/helpers/promiseOrCallback.js
generated
vendored
@@ -1,21 +1,22 @@
|
||||
'use strict';
|
||||
|
||||
const PromiseProvider = require('../promise_provider');
|
||||
const immediate = require('./immediate');
|
||||
|
||||
const emittedSymbol = Symbol.for('mongoose:emitted');
|
||||
const emittedSymbol = Symbol('mongoose:emitted');
|
||||
|
||||
module.exports = function promiseOrCallback(callback, fn, ee) {
|
||||
module.exports = function promiseOrCallback(callback, fn, ee, Promise) {
|
||||
if (typeof callback === 'function') {
|
||||
return fn(function(error) {
|
||||
if (error != null) {
|
||||
if (ee != null && ee.listeners('error').length > 0 && !error[emittedSymbol]) {
|
||||
if (ee != null && ee.listeners != null && ee.listeners('error').length > 0 && !error[emittedSymbol]) {
|
||||
error[emittedSymbol] = true;
|
||||
ee.emit('error', error);
|
||||
}
|
||||
try {
|
||||
callback(error);
|
||||
} catch (error) {
|
||||
return process.nextTick(() => {
|
||||
return immediate(() => {
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
@@ -25,12 +26,12 @@ module.exports = function promiseOrCallback(callback, fn, ee) {
|
||||
});
|
||||
}
|
||||
|
||||
const Promise = PromiseProvider.get();
|
||||
Promise = Promise || PromiseProvider.get();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
fn(function(error, res) {
|
||||
if (error != null) {
|
||||
if (ee != null && ee.listeners('error').length > 0 && !error[emittedSymbol]) {
|
||||
if (ee != null && ee.listeners != null && ee.listeners('error').length > 0 && !error[emittedSymbol]) {
|
||||
error[emittedSymbol] = true;
|
||||
ee.emit('error', error);
|
||||
}
|
||||
@@ -42,4 +43,4 @@ module.exports = function promiseOrCallback(callback, fn, ee) {
|
||||
resolve(res);
|
||||
});
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user