function executeFunction (callbackArray, amount) {
|
return new Promise(function (resolve, reject) {
|
let index = 0
|
let currentIndex = 1
|
|
function execute () {
|
try {
|
callbackArray[index]()
|
index++
|
} catch (e) {
|
return new Error(e)
|
} finally {
|
if (currentIndex == callbackArray.length) {
|
resolve
|
}
|
execute()
|
currentIndex++
|
}
|
}
|
execute()
|
})
|
}
|
|
export function deepClone(obj) {
|
if (obj === null || typeof obj !== 'object') {
|
return obj
|
}
|
if (obj instanceof Date) {
|
return new Date(obj.getTime())
|
}
|
if (obj instanceof Array) {
|
return obj.map(item => deepClone(item))
|
}
|
if (typeof obj === 'object') {
|
const clonedObj = {}
|
for (let key in obj) {
|
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
clonedObj[key] = deepClone(obj[key])
|
}
|
}
|
return clonedObj
|
}
|
}
|
|
export default executeFunction
|