@sharkdest

Как вернуть значение из функции?

Есть функция:

getUserData = (userData, criteria) => {
  let key = 0;
  let items = usersData.map((number) =>
     {return {name: number[criteria]}}
   );
   for (let i of items) {
     i.key = key++;
   }
   return items
};

Хочу ее вызвать в этом месте и получить ответ (вывести ответ в консоль):

componentDidMount () {

const userData = ...;
const criteria = ...;

 getUserData(userData, criteria)
 .then(items => {
     console.log(items);
 });
}

Что делаю не так?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
kshshe
@kshshe
Frontend developer
Чтобы можно было использовать then, замени
getUserData = (userData, criteria) => {
  let key = 0;
  let items = usersData.map((number) =>
     {return {name: number[criteria]}}
   );
   for (let i of items) {
     i.key = key++;
   }
   return items
};


на
getUserData = (userData, criteria) => {
  return new Promise(resolve => {
    let key = 0;
    let items = usersData.map((number) =>
       {return {name: number[criteria]}}
     );
     for (let i of items) {
       i.key = key++;
     }
     resolve(items)
  })
};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Чтобы использовать then твоя функция должна возвращать Promise, у тебя же функция возвращает значение и необходимости в промисет там нет, поэтому просто
console.log( getUserData(userData, criteria));
По ходу полезли в реакт не разобравшись с основами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы