How can i run a forEach on a collection but only move to the next item when the current item has finished being processed. Does meteor collection cursor have a next() feature? There is no sequential index to my collection so I cannot make new queries based on an Index.
eg
Images.find( {} ).forEach( function(image){
downloadImage( image.url, function(){
next(); now that the downloadImage has returned, move on to the next image in the forEach
} )
})
You don’t say whether you need this on the client or the server.
If it’s on the server, your requirement is satisfied using standard Meteor “sync-style” coding - as long as you use Meteor’s HTTP package* for your downloading (the non-callback form).
Promises (and async/await) seem to be a good alternative, but I don’t believe will address your requirement directly. So, if you need this on the client or want to use Promises on the server you will need to use something like promise-waterfall.
* or wrap a 3rd party function with Meteor.wrapAsync or Meteor.bindEnvironment.