2013-08-26 9 views
5

Supponiamo di avere:Può costruttori non banali chiamano future funzioni che ritornano (come o alternative)

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

In questo costruttore, assumere c'è un URL fornito nel jsonString per scaricare i dati e la solo API per leggere un URL è uno che restituisce un futuro. Inoltre, assume Lo schema è solo un oggetto valido quando i dati dell'URL sono stati letti ed elaborati. È possibile implementare anche lo ...?

risposta

8

Ciò che si desidera fare non è possibile con i costruttori standard.

Invece, provare un metodo statico che restituisce una nuova istanza avvolta in un futuro.

Qualcosa di simile:

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