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
.
以下方法打印存储在 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
.