如何传递对承诺的响应集合



我想将Promise<WS.HttpResponse>的集合传递给promise的waitAll。例如,我不想传递r1r2r3,而是想将添加到列表或集合中,并将它们传递给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);
   }
}

让我知道它是否对你有帮助,或者你是否需要进一步的帮助

最新更新