增加了非callback 模式