非平凡的构造函数可以调用Future返回函数(如何或替代)

use*_*952 5 dart

假设你有:

class Schema {
    Schema.fromText(String jsonString) {
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在此构造函数中,假设jsonString中提供了一个URL 来下载数据,并且读取URL 的唯一 API是返回Future的API.此外,假设在读取和处理该URL数据时,Schema只是一个有效对象.是否有可能实施......

Set*_*add 8

标准构造函数无法实现您的目标.

相反,尝试一个静态方法,它返回一个包装在Future中的新实例.

就像是:

class Schema {
  Schema._fromApi(String apiResults) { ... }
  static Future<Schema> build(String jsonString) {
    return getContentsOfUrl(jsonString['url'])
        .then((contents) => new Schema._fromApi(contents));
  }
}
Run Code Online (Sandbox Code Playgroud)