繁体   English   中英

与 Promise.all 等效的 C# 是什么?

[英]What is the C# equivalent to Promise.all?

我想从 Firebase 实时数据库中的多个位置获取数据,如 Frank van Puffelen在此处此处所述,我在 c# 中找不到与Promise.all等效的任何数据。 什么是正确的方法呢?

您正在寻找的是Task.WhenAll 您应该创建与要从中获取数据的多个位置一样多的任务,然后在此方法中提供它们。

要扩展@Christos 接受的答案:

Task.WhenAll似乎与您将获得的Promise.all替代品一样接近 我实际上发现它比我最初想象的更接近。 下面是一个使用 JavaScript Promise.all实现的示例,您可能希望在 C# 中复制它:

const [ resolvedPromiseOne, resolvedPromiseTwo ] = await Promise.all([ taskOne, taskTwo ]);

在 C# 中,你可以用Task.WhenAll做一些非常相似的Task.WhenAll (假设它们返回相同的类型)。

var taskList = new[]
{
  SomeTask(),
  AnotherTask()
};

var completedTasks = await Task.WhenAll(taskList);

// then access them like you would any array
var someTask = completedTasks[0];
var anotherTask = completedTasks[1];

// or just iterate over the array
foreach (var task in completedTasks)
{
  doSomething(task);
}

这假设它们都在async方法/函数中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM