1

我想将集合传递给Promise<WS.HttpResponse>承诺waitAll。因此,例如,我不想传递r1,r2和,而是将其添加到列表或集合中并将它们传递给. 请帮忙r3waitAll

公共类 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);
  }
}
4

1 回答 1

0

所以为了持有几个承诺,我建议简单地使用一个列表。它很简单,容易,有很多做事的例子,在这里可能很好。做会员

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);
   }
}

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

于 2013-07-17T19:10:21.193 回答