XMLRPC客户端获取数据时无法正常取用Promise返回值问题求助
Promise返回值获取方案
你封装的forgotPassword函数返回的是标准Promise实例,要获取异步返回结果用于后续逻辑,可以用以下两种写法:
方法1:.then()/.catch() 链式调用
// 替换为实际请求参数 const requestParams = ['user@example.com']; forgotPassword(requestParams) .then(result => { // 此处result即为resolve返回的结果,可直接写后续业务逻辑 console.log('接口返回结果:', result); if (result === 'Password Sent!!') { // 密码发送成功后的逻辑 } else if (result === 'User Not Found!!') { // 用户不存在的处理逻辑 } }) .catch(error => { // 此处捕获reject抛出的异常,做错误处理 console.error('操作异常:', error); });
方法2:async/await 语法(代码可读性更强)
注意:await关键字必须在被async关键字修饰的函数内部使用
// 封装业务处理逻辑 async function execForgotPassword(params) { try { const result = await forgotPassword(params); // 拿到返回结果后处理后续逻辑 console.log('接口返回结果:', result); if (result === 'Password Sent!!') { // 密码发送成功后的逻辑 } else if (result === 'User Not Found!!') { // 用户不存在的处理逻辑 } } catch (error) { // 异常处理 console.error('操作异常:', error); } } // 调用执行 const requestParams = ['user@example.com']; execForgotPassword(requestParams);
注意事项
- 不要尝试在同步代码中直接获取Promise的返回值,所有依赖异步结果的后续逻辑必须写在
.then()回调中,或是await关键字之后的位置 - 你当前的Promise封装逻辑符合规范,无需修改原有封装代码
内容的提问来源于stack exchange,提问作者TheGhoul27
相关产品推荐
相关产品推荐

