Promise based generators with no dependency on a specific promise lib