SendQueue를 이용한 함수 순서 정하는것에 대해 질문 드립니다

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

SendQueue기능을 이용하면 위에서 부터 차례대로 기능을 수행 하는지 알고 싶습니다.
예들 들어

public void TestButton()
{
SendQueue.Enqueue(Backend.Chart.GetChartList, callback =>
{
for (int i = 0; i < callback.GetReturnValuetoJSON()[“rows”].Count; i++)
{
JsonData data = callback.GetReturnValuetoJSON()[“rows”][i];

            string file_ID = data["selectedChartFileId"]["N"].ToString();
            string chart_Name = data["chartName"]["S"].ToString();

            if (chart_Name == "Target_Data")
            {
                Debug.Log("1번 함수");
            }
        }
    });

    SendQueue.Enqueue(Backend.GameData.GetMyData, "Goods_Table", new Where(), 1, callback =>
    {
        Debug.Log("2번 함수");
    });
}

(Update문에서 SendQueue.Poll();을 사용하고 있습니다)

라는 함수를 버튼에 저장하여 사용 했을 때, 항상 1번 함수가 먼저 출력 되는 방식인지 궁금합니다.
만약 항상 확실하지 않다면 SendQueue로 순서를 확실하게 정하는 방법을 알고 싶습니다.

안녕하세요 개발자님.

SendQueue의 경우, Enqueue로 호출한 순서대로 함수가 작동합니다.(앞에 있는 함수의 콜백이 종료될때까지 다음 함수가 대기)

그러므로 위와 같은 코드 또한 1번 함수 이후에는 2번 함수가 호출됩니다.

하지만 1번 함수와 2번 함수의 작업이 연관되어 있을 경우에는 아래와 같이 콜백안에서 2번 함수를 호출하는 것을 추천드립니다.(callback 값 상호작용 및 순서가 더 확실히 보장되는 방법입니다.)

    public void TestButton()
    {
        SendQueue.Enqueue(Backend.Chart.GetChartList, callback =>
        {
            if (callback.IsSuccess())
            {
                for (int i = 0; i < callback.GetReturnValuetoJSON()[“rows”].Count; i++)
                {
                    JsonData data = callback.GetReturnValuetoJSON()[“rows”][i];

                    string file_ID = data["selectedChartFileId"]["N"].ToString();
                    string chart_Name = data["chartName"]["S"].ToString();

                    if (chart_Name == "Target_Data")
                    {
                        Debug.Log("1번 함수");

                        SendQueue.Enqueue(Backend.GameData.GetMyData, "Goods_Table", new Where(), 1, callback2 =>
                        {
                            Debug.Log("2번 함수");
                        });
                    }
                }
            }
        });
    }