promise异步请求返回数据问题

问题遇到的现象和发生背景

使用promise返回了一个数组,但是传入组件会报错,提示返回的数组是一个promise

用代码块功能插入代码,请勿粘贴截图

this.service.getDataDict(dataType)()为异步请求方法, options是这个方法返回的数据,我这里返回的是个数组,但是还报错说是要的数组而不是promise

:options="selectOptions()">
selectOptions() {
      let selectOption = this.field.options.selectOption
      return selectOption.selectSource === 1 ? selectOption.options : this.getDictData(selectOption.dataDictionary)
},
async getDictData(dataType) {
        const data = await this.service.getDataDict(dataType)() ?? [];      
      return data?.map((t) => ({
        label: t.dataName,
        value: t.dataValue,
      })) ?? [];
    },

运行结果及报错内容

Invalid prop: type check failed for prop "options". Expected Array, got Promise

我想要达到的结果

不报错

试试调整为这样


selectOptions() {
      return new Promise((reslove,reject)=>{
        let selectOption = this.field.options.selectOption;
        let dataDictionary = this.getDictData(selectOption.dataDictionary);
        reslove(selectOption.selectSource === 1 ? selectOption.options : dataDictionary);
      });
    }

挨个打印下具体排查一下

:options="selectOptions()"你这里selectOptions执行getDictData返回的是一个promise,要修改这里,比如写一个变量a,:options="a",在selectOptions中主动为a赋值