Samorez,
Наверно у ассинхронной функции есть свой callback, очевидно дальнейшее продвижение по дереву исполнений(внутри testData) , уже делать вызовом функции завершения(с тестом оставшихся) из callback первой ассинхронной
Либо складывать все результаты тестов в массив и тестировать длину всего массива(и завершения исполнения функции testData) через setInterval()
|