如何在循环的服务器请求中使用 Phaser?

阿斯莫德

我的代码是这样的:

someFunction() {

        // countdownlatch is set up here

        for (i = 0; i<cyclesCount; i++) {
            //request is sending

            someServerRequest.executeWithListener(new CustomListener() {
                @Override
                public void onComplete(Integer response) {
                    arraylist.add(response);
                }
            });
        }

        //countdownlatch waits here
        //do something with arraylist

    }

CountDownLatch 有助于等待循环,但其中的每个服务器请求都是在单独的线程中完成的。所以我以随机顺序收到回复,这不适合我。

我尝试以不同的方式使用 Phaser 和 CountDownLatch,但它对我不起作用。

亡灵

你可以(例如)使Result类,并添加的情况下,ArrayList例如:

private static class Result {
    private final int resultNumber;
    private final Integer response;

    private Result(final int resultNumber, final Integer response) {
        this.resultNumber = resultNumber;
        this.response = response;
    }
}

然后有

for (i = 0; i < cyclesCount; i++) {
    someServerRequest.executeWithListener(new CustomListener() {
        @Override
        public void onComplete(Integer response) {
            arrayList.add(new Result(i, response));
        }
    });
}

然后,您可以根据 对列表进行排序resultNumberresponses如果需要,还可以将其映射到 的列表),或者 makeResult implements Comparable<Result>然后从那里使用自然排序。

另外:ArrayList不是线程安全的(只是按照变量的名称)。Collections.synchronizedList(new ArrayList<>())如果您在实际生产代码中使用它,我建议您。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Phaser错误的WebGL

来自分类Dev

如何使用Phaser加载图像

来自分类Dev

如何在Phaser中使用A,S,D,W键?

来自分类Dev

使用Typescript的Phaser游戏设置

来自分类Dev

从服务器javascript / phaser获取随机图像

来自分类Dev

phaser.js中的音频循环

来自分类Dev

在Phaser中循环播放音频

来自分类Dev

Phaser:预加载后如何加载资产?

来自分类Dev

如何设置对撞机与世界边界(Phaser)?

来自分类Dev

如何限制Phaser3更新率?

来自分类Dev

如何清除Phaser 3中的透明像素?

来自分类Dev

尝试使用gruntjs设置Phaser和Typescript

来自分类Dev

如何使我的文字跟上Phaser 3中的播放器?

来自分类Dev

平铺的地图编辑器,使用Phaser制作迷宫

来自分类Dev

如何在phaser.js中捕获全局触摸事件

来自分类Dev

Phaser:如何在图层中对多边形进行分组?

来自分类Dev

如何在Phaser 3中更改图像的Hitbox形状?

来自分类Dev

如何在Phaser 3上重新加载游戏?

来自分类Dev

如何在Xerox Phaser 3020上设置WPS?

来自分类Dev

Phaser:如何在图层中对多边形进行分组?

来自分类Dev

如何在phaser.js中捕获全局触摸事件

来自分类Dev

如何在 Phaser 3 中将精灵存储在数组中?

来自分类Dev

如何使用phaser.io将画布垂直居中?

来自分类Dev

如何使用Phaser在手机上制作全屏版本

来自分类Dev

Phaser.js在forEach循环中删除组中的对象

来自分类Dev

使更新循环与 Phaser 中的音乐和音符同步

来自分类Dev

在Phaser.io中使组内的对象与自身碰撞?

来自分类Dev

如何仅在一个场景中改变引力(Phaser)?

来自分类Dev

Phaser-如何更改组的子画面图像?