In my program there are list elements of which should be processed. So I pass them in function. I can do it consequently in for loop but it will take a long time, so I use Bluebird.map(). But I need to change how it runs functions so that it not run them at the same time but with timeout 1 second. Graphically: colored boxes - running functions, lines - 1 second intervals.

One important thing is that at the same time maximum number of running functions should be limited. So what I want is Bluebird.map() but one which runs functions with 1 second interval