繁体   English   中英

异步/等待 - 无法达到承诺结果

[英]Async/await - cannot reach promise result

我试图在 Reactjs 函数组件中达到 Promise 结果,但它对我不起作用。 当我返回函数结果时,我只会得到 Promise。 我的目标是返回一个包含在 [[Promise Result]] 中的对象。

const params = ['ACT', 'STBY', 'STBYH'];
const getActStby = async address => {
  const getActStbyParams = await getXhr({
    url: `./scripts/system_read_config?${xhrParam(address, params)}`
  });
  return getActStbyParams;
};

然后我稍后在代码中调用它并将其作为新属性分配给对象:

newItemEqpt.isAct = getActStby(getNetworkAddress(item.from.FROM, item.to.TO));

这些活动的输出是“部分”好的。 当我 console.log 对象时, Promise 已实现,但我想要将 [[Promise result]] 中的parameters数组直接分配给isAct属性。 我怎样才能做到这一点?

isAct: Promise
 [[Prototype]]: Promise
 [[PromiseState]]: "fulfilled"
 [[PromiseResult]]: Object
   parameters: (3) [{…}, {…}, {…}]
   [[Prototype]]: Object

函数getActStby声明为async ,因此您必须await获得它的结果;

newItemEqpt.isAct = await getActStby(getNetworkAddress(item.from.FROM, item.to.TO));

为了能够像上面一样使用await关键字,对getActStby的函数调用也应该在async函数中进行,否则您必须使用then方法链接该函数并使用回调访问该函数的返回值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM