function FUNC1(){
console.log("1")
setTimeout(function(){console.log("2")},250)
setTimeout(function(){console.log("3")},500)
}
function FUNC2(){
console.log("4")
setTimeout(function(){console.log("5")},350)
setTimeout(function(){console.log("6")},600)
}
func1time = 500
func2time = 600
queue = []
queue.push([FUNC1,func1time])
queue.push([FUNC2,func2time])
function ProcessQueue(){
if (queue.length > 0){
var delay = queue[0][1] // получаем время выполнения команды
queue.shift()[0]() // выполняем команду, удаляя из массива очереди
setTimeout(ProcessQueue,delay) // повторно вызываем обработку очереди
// через время, необходимое на завершение
// действий исполняемой функции
}
}
ProcessQueue()
ZnVuY3Rpb24gRlVOQzEoKXsKCWNvbnNvbGUubG9nKCIxIikKCXNldFRpbWVvdXQoZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiMiIpfSwyNTApCglzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIjMiKX0sNTAwKQp9CgoKZnVuY3Rpb24gRlVOQzIoKXsKCWNvbnNvbGUubG9nKCI0IikKCXNldFRpbWVvdXQoZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiNSIpfSwzNTApCglzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIjYiKX0sNjAwKQp9CgpmdW5jMXRpbWUgPSA1MDAKZnVuYzJ0aW1lID0gNjAwCgpxdWV1ZSA9IFtdCnF1ZXVlLnB1c2goW0ZVTkMxLGZ1bmMxdGltZV0pCnF1ZXVlLnB1c2goW0ZVTkMyLGZ1bmMydGltZV0pCgpmdW5jdGlvbiBQcm9jZXNzUXVldWUoKXsKCWlmIChxdWV1ZS5sZW5ndGggPiAwKXsKCQl2YXIgZGVsYXkgPSBxdWV1ZVswXVsxXSAvLyDQv9C+0LvRg9GH0LDQtdC8INCy0YDQtdC80Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8g0LrQvtC80LDQvdC00YsKCQlxdWV1ZS5zaGlmdCgpWzBdKCkgLy8g0LLRi9C/0L7Qu9C90Y/QtdC8INC60L7QvNCw0L3QtNGDLCDRg9C00LDQu9GP0Y8g0LjQtyDQvNCw0YHRgdC40LLQsCDQvtGH0LXRgNC10LTQuAoJCXNldFRpbWVvdXQoUHJvY2Vzc1F1ZXVlLGRlbGF5KSAvLyDQv9C+0LLRgtC+0YDQvdC+INCy0YvQt9GL0LLQsNC10Lwg0L7QsdGA0LDQsdC+0YLQutGDINC+0YfQtdGA0LXQtNC4CgkJCQkJCQkJCS8vINGH0LXRgNC10Lcg0LLRgNC10LzRjywg0L3QtdC+0LHRhdC+0LTQuNC80L7QtSDQvdCwINC30LDQstC10YDRiNC10L3QuNC1CgkJCQkJCQkJCS8vINC00LXQudGB0YLQstC40Lkg0LjRgdC/0L7Qu9C90Y/QtdC80L7QuSDRhNGD0L3QutGG0LjQuAoJfQp9CgpQcm9jZXNzUXVldWUoKQ==