Future.then returns 意外的空值

Future.then returns unexpected null value

以下方法打印存储在 Redis 中的键的值

Future<String> getValue(String connectionString, String key) {
  return RedisClient.connect(connectionString).then((RedisClient client) {
        client.get(key).then((value) => print(value));
      });
}

但是当我尝试从 main() 打印值时,方法 getValue 打印 null 而不是值(如上面的方法):

library persistence;

Future<String> getValue(String connectionString, String key) {
  return RedisClient.connect(connectionString).then((RedisClient client) {
        client.get(key);
      });
}

-

import 'package:test/persistence.dart' as persistence;
main () {
  persistence.getValue(
                    "localhost:6379/0",
                    "key")
  .then((value) => print(value)); // **prints null.... WHY???**
}

看来.then((value) => print(value))执行得太早了

有人可以帮我吗?

client.get(key) 之前添加 return 或使用简短方法形式 => client.get(key) 那么您就不需要 return.