Javascript 在ES6上从异步/等待函数获取返回值时遇到问题,如何解决?

Javascript 在ES6上从异步/等待函数获取返回值时遇到问题,如何解决?,javascript,reactjs,typescript,ecmascript-6,async-await,Javascript,Reactjs,Typescript,Ecmascript 6,Async Await,我试图从数组中减去一个id,将其用作参数,但在尝试时遇到了一些问题 代码如下: const takeId = async (): Promise<any> => { const newArr = await departmentResolution[0].template; getTemplateId = await newArr.map((item: any) => { return item; }); return

我试图从数组中减去一个
id
,将其用作参数,但在尝试时遇到了一些问题

代码如下:

  const takeId = async (): Promise<any> => {
    const newArr = await departmentResolution[0].template;

    getTemplateId = await newArr.map((item: any) => {
      return item;
    });

    return getTemplateId[0]; // this returns { id: 11, anotherKey: 'value' }
  }

 const setId = async () => {
    const el = await takeId();

    return el.id;
  }

不要在渲染模板中使用异步方法

在模板中,使用在承诺解析时更新的状态变量。使用状态值时,一旦状态更新,它将作为重新渲染触发

状态={
someKey:'someInitialValue'
};
异步myMethod(){
const myAsyncValue=wait anotherAsyncMethod();
this.setState({someKey:myAsyncValue});
}
render(){
返回{this.state.someKey};
}

请阅读
wait
的工作原理。只有当您等待的值是承诺时,它才会做一些有用的事情。这段代码看起来非常误导,因为似乎没有任何实际的异步操作生成承诺,因此没有理由使用
async
wait
@jfriend00,我已经读过了,但仍然没有得到这个概念。我只是想寻求帮助,以获得更清楚的想法。我不认为
请去阅读
是一个合适的答案,因为在这个网站上,人们会就自己的疑问提问。我明白了。所以,你似乎没有承诺,你实际上需要等待。没有发生任何异步的事情。您可以删除代码中的所有
async
wait
关键字,这样就可以了。您还需要从
takeId
(它只是一个对象)修复返回值的类型,我这么说是因为你完全误用了
await
,这表明你对它的用途和使用方法没有基本的了解,而stackoverflow并不是为了编写关于这类广泛主题的长教程。然后,再加上这个问题,你甚至没有真正解释你想解决什么问题。首先,您应该从此代码中删除所有对
async
wait
promissions
的使用,因为它们在任何情况下都不会有用。我现在提出了一些建议。如果你被他们冒犯了,我和其他人会走开。你写了一个很不清楚的问题。我给出了一些建议(可能不恰当地表现出一点挫折感),但这些建议是合法的。我将接受你的建议,不再试图向你提供建议。
      <Container>
        <Breadcrumb />
        {handleTemplate(setId())}
      </Container>