確切的說(shuō)是被await逼瘋了
我寫(xiě)了個(gè)從url獲取一個(gè)json的返回渠脉。用了dio.get這個(gè)函數(shù)沽讹,然后調(diào)用這個(gè)函數(shù)需要await,然后因?yàn)橛昧薬wait,函數(shù)外面又要加async。而要調(diào)用這個(gè)函數(shù)晃酒,因?yàn)榧恿薬sync,又要加await,因?yàn)榧恿薬wait又要定義時(shí)外面加async,然后就無(wú)窮無(wú)盡了……,天那
如果我想測(cè)試這個(gè)getLiveLIst函數(shù):
class XXX{
final url="http://XXX";
getLiveList() async{
Dio dio = new Dio();
Response<String> response=await dio.get(url);
return response.data;
}
然后我在test文件夾下寫(xiě)了測(cè)試:
import 'package:test/test.dart';
import 'package:XXX/XXX.dart';
void main() {
test('test get json', () {
print( new XXX().getJson());
});
}
當(dāng)然立砸,因?yàn)間etJson加了async掖疮,print的結(jié)果是Instance of 'Future'
但是我想print json啊,怎么辦颗祝,難道是:
import 'package:test/test.dart';
import 'package:XXX/XXX.dart';
void main() {
test('test get json', () {
print( await new XXX().getJson());
});
}
當(dāng)然了浊闪,它會(huì)報(bào)錯(cuò),那我只能再加async
import 'package:test/test.dart';
import 'package:XXX/XXX.dart';
void main() {
test('test get json', () async {
print( await new XXX().getJson());
});
}
當(dāng)然了它會(huì)報(bào)錯(cuò)螺戳,因?yàn)橛辛薬sync,所以要給test前面加 await,當(dāng)然了它會(huì)報(bào)錯(cuò)搁宾,因?yàn)橛辛薬wait,我需要給main函數(shù)加async.
import 'package:test/test.dart';
import 'package:XXX/XXX.dart';
void main() async{
await test('test get json', () async {
print( await new XXX().getJson());
});
}
當(dāng)然了,它會(huì)報(bào)錯(cuò)倔幼,然后我瘋了