You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:54:07