УВЕДОМЛЕНИЕ ОБ УСТАРЕВАНИИ: Получение свойства часового пояса объекта пользователя устарело. Используйте вместо этого объект user_option

Я нашёл способ обойти это предупреждение об устаревании, при этом по-прежнему получая доступ к 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[]
});