비추천 공지: 사용자 객체의 timezone 속성을 가져오는 기능은 비추천되었습니다. 대신 user_option 객체를 사용하세요

이 비추천(deprecation) 알림을 우회하면서 user_field에 여전히 접근할 수 있는 방법을 찾았습니다:

api.getCurrentUser().findDetails().then((user) => { ... });

다만, findDetails항상 서버에 요청을 보냅니다. 캐싱은 이루어지지 않습니다. 한 번 호출되면 현재 사용자의 user_fields가 채워지게 됩니다.

따라서 로직을 다음과 같이 조금 최적화할 수 있습니다:


function withUserFields(user, callback) {
  if (user.user_fields === undefined) {
    user.findDetails().then(callback);
  } else {
    callback(user);
  }
}

withUserFields(api.getCurrentUser(), (user) => {
  // user.user_fields[]를 사용하여 무언가를 수행
});