新增 promise 功能