首页 > 解决方案 > 如何知道返回值是否为未来

问题描述

我想知道从回调中返回的变量(定义为返回动态)是否是未来。目标是知道是否这样await做。

这是我想知道的示例代码:


dynamic returnedValue = callbackPassedFromArguments();
//the next line is what I want to know

if(isFuture(returnedValue))
{
 dynamic realReturnedValue = await returnedValue;
}
....

有没有可以替代isFuture我提到的 psudoFunction 的功能?

标签: flutterdartfuture

解决方案


要测试某事是否是未来,只需进行类型检查returnedValue is Future

在这种情况下,我会这样做:

if (returnedValue is Future) {
 returnedValue = await returnedValue;
}

可以这样做:

 returnedValue = await returnedValue;

结果是一样的,但是后面的代码会引入一个异步延迟,因为returnedValue如果它不是一个未来,它实际上将它包装到一个未来中,然后等待那个未来。


推荐阅读