如何使用API​​结果作为对象的属性?

时间:2019-12-30 19:13:52

标签: javascript typescript async-await

我正在使用JavaScript和TypeScript制作一个单页Web应用程序。我也在使用JavaScript(self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(handleDone)))的模块系统。

我有一个名为type="module"的类,它接收一个对象并创建一个Form。我有一个模块,其中包含注册表格的所有数据。在具有选项字段的输入中只有一个选择。我将那些选项分配给包含国家名称的数组。我正在使用API​​来获取国家/地区的名称。但是我被困住了。

下面是我的文件Form

RegisterFormDialog.ts

另一个文件具有API功能。它的名字是const RegisterFormData: IForm = { //... Some other props inputs: [ //..Some other objects. { name: "country", type: "select", label: "Country", options: countries.map(x => x.name) // Here I want result of the api } ] }; export const RegisterForm = new Form(RegisterFormData); export const RegisterFormDialog = new Dialog({ child: RegisterForm.element, title: "Register", dismissable: true, onClose: () => 5, parentElement: qs("#main") as HTMLElement });

GetCountries.ts

现在如何将API数据的返回值分配给对象中的options属性。

1 个答案:

答案 0 :(得分:0)

任何声明为async的函数都应为awaited(或使用.then())来使用其解析值。

因此,您也只需await getCountries函数。

options: (await getCountries).map(x => x.name)