经过初步调试，还有bug存在，会运行过时的函数