如何访问等待对象中的属性和多个值



我有一个类,它包含一些属性,我需要访问另一个文件中的值。

Public Class ReturnValues
Public Property result As String
Public Property resultBank As String
Public Property resultAddressMatch As String
End Class

我调用我的异步函数,还创建了一个对象的新实例

Dim results As ReturnValues = New ReturnValues()
Public Shared Async Function x(ByVal sUserID As String) As Threading.Tasks.Task(Of Object)

它继续进行并调用外部api,我得到结果并将其存储为对象

results.result = data.data.attributes.result
results.resultBank = data.data.attributes.bank_account_match
results.resultAddressMatch = data.data.attributes.name_and_address_match
Return results

在我的另一个文件中,我等待结果。在调试时,我可以看到等待的结果包含result属性,该属性包含我需要访问的三条数据。

Await result

我不太确定我从这里到哪里去,因为我放不下。之后的结果和访问任何相关的。

我确实尝试过将它显式地转换为列表,并以这种方式访问它们,但没有这样的运气。

Dim list = CType(result, Object())
sResult = list(0)
sResultBank = list(1)
sResultNameAddressMatch = list(2)

如何从我的结果对象中获得这3个结果?

尝试这个

dim R as ReturnValues = await result

使用AsyncAwait的关键在于您有以下转换:

在异步例程一侧,Function x As SomeType变为Async Function x As Task(Of SomeType)

在呼叫方一侧:

Dim y as SomeType
'...
y = x()

转化为:

Dim y as SomeType
'...
y = Await x()

如果你不是把它写成异步代码,我希望你不会试图把ReturnValues类型的东西变成List。您应该像函数不是异步的那样编写客户端,然后在调用中插入Await。其余的会如你所期望的那样工作。

最新更新