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

时间:2013-08-26 12:01:49

标签: dart

假设你有:

class Schema {
    Schema.fromText(String jsonString) {
      ...
    }
}

在此构造函数中,假设 jsonString 中提供了一个URL来下载数据,而 only API用于读取URL是一个返回一个未来。此外,假设 Schema只是在读取和处理该URL数据时的有效对象。是否有可能实现 ...

1 个答案:

答案 0 :(得分:8)

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

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

类似的东西:

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