如何让异步接口同时支持 callback 和 promise