реактивно-динамически получать / устанавливать переменные конфигурации (API URL) - PullRequest
0 голосов
/ 27 сентября 2018

Мое приложение запускается с выбора страны, и я хочу изменить свой API_URL в соответствии с данными о стране, которые выбирает пользователь.

Мой идентификатор страны хранится в AsyncStorage.Я пробовал это, но это не сработало.

function Configure() {
    let url = '';
}
Configure.prototype.getApiUrl = function (params = null) {
    AsyncStorage.getItem("country").then((value) => {
        if(value == 223) {
            return "https://www.website.com/usa_api"
        }else{
            return "https://www.website.com/api"
        }
    });
}

module.exports = Configure

1 Ответ

0 голосов
/ 28 сентября 2018

Вы должны вернуть функцию Обещания

function Configure() {
    let url = '';
}

Configure.prototype.getApiUrl = function (params = null) {
    return AsyncStorage // Have to return the promise
        .getItem("country")
        .then((value) => {
            if (value == 223) {
                return "https://www.website.com/usa_api"
            } else {
                return "https://www.website.com/api"
            }
        });
}

module.exports = Configure

Использование

Теперь, когда мы возвращаем Обещание, мы можем ожидать его от того места, где вы хотите его использовать.это

// Use the promise
Configure
  .getApiUrl()
  .then((apiURL) => {
      // You should be getting the API URL here
  })


// Or better looking code with async/await
const apiURL = await Configure.getApiUrl();
// You should be getting the API URL here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...