비동기 Return 방법이 있나요?

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

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

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

안녕하세요,
비동기 함수로 return값을 가지고 싶은데 어떤 방법이 있는지 문의드립니다.

string GetUserInfoAsync(string info) {
Backend.BMember.GetUserInfo(callback => {
if (callback.IsSuccess()) {
string nickname = callback.GetReturnValuetoJSON()[“row”][info].ToString();
// return nickname
}
});
}

안녕하세요 개발자님,
비동기 함수는 호출을 한 다음에는 비동기 처리가 되야하므로,
로직을 기다리지 못해 리턴값이 불가능합니다.

만약 동기를 비동기로 호출하고 싶을 경우에는 아래처럼 Task를 통해
비동기 쓰레드에서 동기 함수를 호출해야 합니다.

다만 비동기 쓰레드에서는 유니티 기능과 유니티 UI 기능의 호출이 불가능하다는 점 꼭 확인해 이용해 주세요.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;

// 뒤끝 SDK namespace 추가
using BackEnd;

public class BackendManager : MonoBehaviour {
    void Start() {
        var bro = Backend.Initialize(true); // 뒤끝 초기화

        // 뒤끝 초기화에 대한 응답값
        if(bro.IsSuccess()) {
            Debug.Log("초기화 성공 : " + bro); // 성공일 경우 statusCode 204 Success
        } else {
            Debug.LogError("초기화 실패 : " + bro); // 실패일 경우 statusCode 400대 에러 발생
        }

        Test();
    }

    // 동기 함수를 비동기에서 호출하게 해주는 함수(유니티 UI 접근 불가)
    async void Test() {
        await Task.Run(() => {
            // BackendLogin.Instance.CustomSignUp("user1","1234"); // [추가] 뒤끝 회원가입(주석 처리)

            BackendLogin.Instance.CustomLogin("user1","1234"); // [추가] 뒤끝 회원가입

            BackendLogin.Instance.UpdateNickname("원하는 이름"); // [추가] 닉네임 변겅
            Debug.Log("테스트를 종료합니다.");
        });
    }
}