在ES6 React .JS中使用Async / Await

时间:2018-11-21 13:35:53

标签: javascript reactjs asynchronous async-await

我有一个安装了ReactJS的NetCore2应用程序。

我的React应用程序做了这样的事情->

  • 用户在字段中输入
  • axios调用api以获取用户和/或用户列表
  • 输入字段根据在PeopleList状态下保存的内容显示建议。

我正在使用Office Fabric UI React-People Picker(以防万一)。

我的问题是我不知道如何在代码中使用异步/等待。

如果我放这样的东西

async asynconFilterChanged = (filterText, currentPersonas, limitResults) => {

VS Code引发错误,告诉我异步仅适用于.ts文件。另外,如果我在其他任何函数中使用await,则会收到诸如await is a reserved word之类的错误。

据我所知异步/等待不只是TS ...(或者我错了吗?)。

我正在使用带有ENV预设的较旧的Babel。

让我知道我是否需要提供更多代码,但是TLDR我想要的是仅在我的axios完成将项目推入PeopleList状态(对象数组)后才启动过滤器功能。

谢谢!

2 个答案:

答案 0 :(得分:5)

使用箭头功能时,您应该这样编写async / await:

const asynconFilteredChanged = async () => {
 // code here 
}

签出Syntax for async arrow function

答案 1 :(得分:0)

按照语法,尝试遵循上述代码库,

asynconFilterChanged = async (filterText, currentPersonas, limitResults) => {
            try {
                await yourFucntion = (limitResults) => {
                ....Your logic...
                }
            } catch(error) {
                console.error(error);
            }

是的,请尝试使用并触摸async-await guide