requestQueue not working

I m trying to find solution for my problem, I have a procedure, and this is my code:

public List<Katalog> getKatalogList() {


    requestQueue = Volley.newRequestQueue(getContext());

    JsonArrayRequest jsonObjectRequest = new JsonArrayRequest(Request.Method.POST, showUrl, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            try {

                int length = response.length()/2;

                for(int i =0; i<length;i++){
                    int j = 2*i;
                    JSONObject jo = response.getJSONObject(j);
                    String man = jo.getString("ManufactureName");
                    String doe = jo.getString("DateOfExperience");
                    int id = Integer.parseInt(jo.getString("CatalogID"));

                    JSONArray ja = response.getJSONArray(j+1);
                    JSONObject joimage = ja.getJSONObject(0);


                    String path = joimage.getString("Path");

                    products.add(new Katalog(path, man, doe,id));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("sranje", "ne radi");
        }
    });


    products = new ArrayList<>();
    requestQueue.add(jsonObjectRequest);

    return products;
}

And somehow, products are always empty, is threr some way to wait until requestQueue finished?