在继续执行包含任务内部功能的函数之前,该如何等待?
public void A()
{
Debug.Log("before")
CopyInfoFromDB();
Debug.Log("after")
}
public void CopyInfoFromDB()
{
FirebaseDatabase.DefaultInstance.GetReference(path)
.GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
Debug.Log("failed");
}
name = ...// loading local varibles from Task.result
});
}
我希望它等待CopyInfoFromDB
完成后再打印“之后”。我应该如何不同地编写函数A?
答案 0 :(得分:-1)
如果您要使用async-await,请准备好使管道中涉及的所有方法也都是异步的
public async Task A()
{
Debug.Log("before")
await CopyInfoFromDB();
Debug.Log("after")
}
public Task CopyInfoFromDB()
{
return FirebaseDatabase.DefaultInstance
.GetReference(path)
.GetValueAsync();
}
如果GetValueAsync
失败,则会在您等待它的行上引发异常。