我想将Promise<WS.HttpResponse>
的集合传递给promise的waitAll
。例如,我不想传递r1
、r2
和r3
,而是想将添加到列表或集合中,并将它们传递给waitAll
。请帮助
公共类AsyncTest扩展控制器{
public static void remoteData() {
F.Promise<WS.HttpResponse> r1 = WS.url("http://example.org/1").getAsync();
F.Promise<WS.HttpResponse> r2 = WS.url("http://example.org/2").getAsync();
F.Promise<WS.HttpResponse> r3 = WS.url("http://example.org/3").getAsync();
F.Promise<List<WS.HttpResponse>> promises = F.Promise.waitAll(r1, r2, r3);
// Suspend processing here, until all three remote calls are complete.
List<WS.HttpResponse> httpResponses = await(promises);
render(httpResponses);
}
}
因此,为了保持几个承诺,我建议简单地使用列表。这是一种简单、简单、有很多例子的做事方式,在这里可能很好。成为会员
List<F.Promise<WS.HttpResponse>> newList = new ArrayList<F.Promise<WS.HttpResponse>>();
和一种简单的方法
public static void addToList(F.Promise<WS.HttpResponse> x)
{
newList.add(x);
}
最后是另一种让他们等待的简单方法
public static void makeThemWait()
{
foreach(F.Promise<WS.HttpResponse> x:newList)
{
F.Promise.waitAll(x);
}
}
让我知道它是否对你有帮助,或者你是否需要进一步的帮助