test_that("each_of", {
  done <- character()
  index <- integer()

  coll <- letters[1:10]

  do <- async(function() {
    dx <- when_all(
      .list = lapply(seq_along(coll), function(i) {
        force(i)
        delay(1 / 1000)$then(function(value) {
          done <<- c(done, coll[[i]])
          index <<- c(index, i)
        })
      })
    )$then(function(value) {
      expect_identical(sort(index), seq_along(coll))
      expect_identical(sort(done), sort(coll))
    })
  })
  synchronise(do())
})
