v2.0.x: remove fist.util.promise dependence