5

あなたが持っていると仮定します:

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

このコンストラクターでは、データをダウンロードするためにjsonStringで提供される URL があり、URLを読み取る唯一のAPI が Future を返す APIであると想定します。また、スキーマは、その URL データが読み取られて処理された場合にのみ有効なオブジェクトであると想定します。実装することさえ可能ですか...

4

1 に答える 1

8

あなたがしたいことは、標準のコンストラクターでは不可能です。

代わりに、Future でラップされた新しいインスタンスを返す静的メソッドを試してください。

何かのようなもの:

class Schema {
  Schema._fromApi(String apiResults) { ... }
  static Future<Schema> build(String jsonString) {
    return getContentsOfUrl(jsonString['url'])
        .then((contents) => new Schema._fromApi(contents));
  }
}
于 2013-08-26T13:46:35.223 に答える