Чтобы проверить, является ли что-то будущим, просто выполните проверку типа returnedValue is Future
.
В этом случае я бы сделал:
if (returnedValue is Future) {
returnedValue = await returnedValue;
}
Вы можете также просто сделайте:
returnedValue = await returnedValue;
Результат тот же, но последний код вводит асинхронную задержку, потому что он фактически оборачивает returnedValue
в будущее, если это не будущее, а затем ожидает, что будущее.