Limit concurrent promise executions.
Sample Input:
[async1, async2, async3, async4], 2
Sample Output:
[result1, result2, result3, result4]
Hints
Hint 1
Track running promises count
Hint 2
Start new promises when slots available
Hint 3
Use Promise.all() for concurrent execution