Promise-based queue