flutter - 如何知道返回值是否为未来
问题描述
我想知道从回调中返回的变量(定义为返回动态)是否是未来。目标是知道是否这样await
做。
这是我想知道的示例代码:
dynamic returnedValue = callbackPassedFromArguments();
//the next line is what I want to know
if(isFuture(returnedValue))
{
dynamic realReturnedValue = await returnedValue;
}
....
有没有可以替代isFuture
我提到的 psudoFunction 的功能?
解决方案
要测试某事是否是未来,只需进行类型检查returnedValue is Future
。
在这种情况下,我会这样做:
if (returnedValue is Future) {
returnedValue = await returnedValue;
}
你也可以这样做:
returnedValue = await returnedValue;
结果是一样的,但是后面的代码会引入一个异步延迟,因为returnedValue
如果它不是一个未来,它实际上将它包装到一个未来中,然后等待那个未来。