注意有loop的那个function