采用callback实现了事件监控