Fix param check, bind callback when iterating, and allow non-event style promises