Как получить несколько полей из экспозиции SecureStore

Я новичок в ES6 и реагирую на родной, пытаясь получить несколько значений из SecureStore.

Я думаю, что я неправильно понимаю обещания здесь... global.userData пуст в функции Promise.all(обещания).then. Соответствующие значения существуют в безопасном хранилище

Мой код:-

   getUserData(fields) {
        var promises = [];
        var that = this;
        global.userData = {};
        function getField(field) {
          return SecureStore.getItemAsync(field)
            .then(res => {
              console.log(field+"="+res); // this appears after the log below
              global.userData[field] = res;
             })
            .catch(error => {
              global.userData[field] = null;
            });
        }
        fields.map(field => {
          promises.push[getField(field)];
        });
        Promise.all(promises).then(function(v) {
          console.log(global.userData); // this is empty
          that.setState({ isReady: true }); // allow page to render
        });
      }

    getUserData(["userId", "userName","etc"]);

1 ответ

Решение

Мой плохой... непреднамеренно используется

promises.push[getField(field)];

должно было:

promises.push(getField(field));

Удивил, что это не было обнаружено как синтаксическая ошибка...

Другие вопросы по тегам