Вход

Просмотр полной версии : Promise - TypeError: _this.getDataTeam.then is not a function


Castromen
18.05.2019, 19:27
Коллеги, добрый вечер.
Подскажите плз. где проблема с Promis-ом
Создаю promise, использую его, получаю ошибку TypeError: _this.getDataTeam.then is not a function



getDataTeam = () => {
let promise = new Promise(()=>{
setTimeout(()=>{
console.log("Test")
}, 200)
})
};

renderTeam = () => {
const {data} = this.props;
const allUsers= this.props.allUsers;
if ((allUsers && allUsers !== '') && (data && data !== '')) {
this.getDataTeam
.then(() => this.result(allUsers, data))
.then(() => console.log("Готово"))
} else {
return (
<View><Text>{'Проектов нет'}</Text></View>
)
}


};

result = (usersObj, team) => {
let resObj = {};
let flag = 0;
Object.keys(usersObj).map((val,index,allObj) => {
if (val === Object.keys(team)[flag]) {
flag++;
resObj[val] = usersObj[val]
} else {

}
});
return resObj
};

Malleys
19.05.2019, 06:24
1. Так может промис надо возвратить в getDataTeam?
2. Промис должен выполниться успешно в getDataTeam?
3. И может всё-таки надо вызвать функцию getDataTeam?
getDataTeam = () => {
return new Promise((resolve) => { // добавил тут возвратить промис (1)
setTimeout(() => {
console.log("Test");
resolve(); // добавил тут (2)
}, 200);
});
};

renderTeam = () => {
const { data, allUsers } = this.props;

if (allUsers && data) {
this.getDataTeam() // добавил тут вызов (3)
.then(() => this.result(allUsers, data))
.then(() => console.log("Готово"));
// А в этом случае что возвращается???
} else {
return <View>
<Text>{"Проектов нет"}</Text>
</View>;
}
};

result = (usersObj, team) => {
let resObj = {}, flag = 0;

Object.keys(usersObj).forEach((val, index, allObj) => {
if (val === Object.keys(team)[flag]) {
flag++;
resObj[val] = usersObj[val];
}
});

return resObj;
};