fix loading lag & simplify promise