是否可以在构造函数中调用异步方法?

时间:2019-08-02 12:23:12

标签: dart

仅当第一个方法完成时,我才需要调用第二个方法。他们两个都是异步的。我写了下一个代码:

class MyApp extends StatelessWidget {
  TenderApiData _tenderApiData;
  MyApp(this._tenderApiData)
  {
    _tenderApiData.getApiKey().then(
      _tenderApiData.getRegionsList()
    );
  }
}

但是我遇到了错误:

  

未处理的异常:类型'Future'不是'f'类型'(dynamic)=> FutureOr'的子类型

2 个答案:

答案 0 :(得分:2)

然后,then方法的语法在您的情况下是错误的,它期望一个返回FutureOr<R>而不是Future本身的函数。

您的代码应该是

    _tenderApiData.getApiKey().then((_) =>
      _tenderApiData.getRegionsList()
    );

如果打算使用_的返回值,则可以替换Future

答案 1 :(得分:0)

确定可以

class MyApp extends StatelessWidget {
  TenderApiData _tenderApiData;
  MyApp(this._tenderApiData) {
     _tenderApiData.getApiKey().then(( _) {
       _tenderApiData.getRegionsList()
      });
  }
}