fix #6, support Promise.all([mixed values])