Dart – Callback function

Callback function with returnvalue

void main() async {
  String output = await function1();
  print(output);
}

Future<String> function1() async {
  print('[Start] function1');
  
  String str = await function2(callback: callback);
  
  print('[End] function1 | returnvalue from function2=$str');
  return str;
}

Future<String> function2({required Function callback}) async {
  print('[Start] function2');
  String ret = await callback();
  print('[End] function2');
  return ret;
}

Future<String> callback() async {
  print('[Start] callback');
  await Future.delayed(Duration(seconds: 3));
  print('[End] callback');
  return 'ABC';
}