Els constructors de futurs són uns ginys especials, pensats per tractar amb futurs. La seva principal aplicació és presentar els resultats d'una consulta web, permetent gestionar els problemes que puguin sorgir. Té dos paràmetres, el primer és el corresponent a la crida que generarà el futur corresponent i el segon és el constructor, que té el context i una instantània (snapshot) de l'estat del futur. En aquesta instantània disposem de diverses informacions:
| Element | Utilitat |
| snapshot.connectionState | Estat de la connexió |
| snapshot.hasError | True si hi ha un error |
| snapshot.error | Error que hi ha hagut |
| snapshot.hasData | True si han arribat dades |
| snapshot.data | Dades rebudes |
Els estats de connexió poden ser:
| Estat | Significat |
| ConnectionState.none | No hi ha connexió, no arribaran dades |
| ConnectionState.waiting | S'està a l'espera de resposta |
| ConnectionState.active | Connexió activa, dades transmetent-se |
| ConnectionState.done | Connexió finalitzada |
En el següent tros de programa, agafat d'aquesta pàgina d'aquest exemple, podem veure una mostra de com gestionar-ho.
...
Padding(
padding: const EdgeInsets.all(8.0),
child: TextButton(
onPressed: () {
setState(() {
_descrip = cridaLlistaDones.demanarLlistaDones();
});
},
child: Text("Dones catalanes"),
),
),
FutureBuilder(future: _descrip, builder: (context, snapshot){
if(snapshot.connectionState == ConnectionState.waiting){
return CircularProgressIndicator();
} else if(snapshot.hasError){
return Text("Error: ${snapshot.error}");
} else if(snapshot.hasData){
return Text("${snapshot.data?.descrip}");
} else {
return Text("No s'han trobat resultats");
}
})
...

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.