jquery 2 promise
loadDetail() {
var defer = $.Deferred()
this.setState({bla-bla}, (event) => {
this.ajaxGetDetail(this.state.openedBidId).then( (json) => {
this.setState({
bla-bla
}, () => {
if (this.transmissionCollection.length === 0) {
this.ajaxRequestTransmission().then( (result) => {
result.map( (item)=>{
let obj = {}
obj[`${item.id}`] = item.name
this.transmissionCollection.push( obj )
})
let transmission_value = blabla
this.setState({ blabla1 }, () => {
return defer.promise();
})
})
} else {
let transmission_value = blabla
this.setState({ blabla2 }, () => {
return defer.promise();
})
}
})
});
});
}
this.loadDetail().then (() => {
console.log('bla')
})
не пойму почему ругается на самый последний then: Cannot read property 'then' of undefined |
alexandr2006
А что у вас такое loadDetail() { ? Объявление функции? |
Цитата:
|
alexandr2006,
А не function loadDetail() { ? Или, как в react loadDetail: function() { |
Цитата:
https://facebook.github.io/react/doc...omponents.html |
[quote=alexandr2006;450912]
не пойму почему ругается на самый последний then: Cannot read property 'then' of undefined[/QUOTE]
[JS]this.loadDetail().then (() => {
console.log('bla')
})
Если ошибка тут, то вероятно потому что loadDetail ничего не возвращает (void). Передавайте функцию в кач-ве аргумента и вызывайте её как callback. |
Цитата:
return defer.promise(); Другое дело что может в jquery 2 как-то подругому надо |
alexandr2006,
Интересно, а что в этом контенте this? |
Цитата:
Даже если «setState» возвращает что-либо, то это «что-либо» так и останется в callback'e асинхронного запроса. Ну и асинхронные запросы устроены так, что код продолжит выполняться не дожидаясь окончания запроса. Это я к тому, что getDetail наверняка нифига не возвращает. |
| Часовой пояс GMT +3, время: 10:35. |