AssetBundle(由返回
rootBundle)通过不同的方式加载资产(本地文件,网络)的抽象方式,并且没有检查该资产是否存在的通用方法。
您可以轻松地包装您的加载代码,以使其变得不那么“丑陋”。
Future myLoadAsset(String path) async { try { return await rootBundle.loadString(path); } catch(_) { return null; } }var assetPaths = ['file1path', 'file2path', 'file3path'];var asset;for(var assetPath in assetPaths) { asset = await myLoadAsset(assetPath); if(asset != null) { break; }}if(asset == null) { throw "Asset and fallback assets couldn't be loaded";}


