【发布时间】:2018-09-27 12:17:59
【问题描述】:
我正在尝试创建一个简单的加载器,当它被调用时,它会调用一个返回数据的 API
requestData(pageSize, page, sorted, filtered){
console.log(filtered);
var url = `http://www.myurl.com/getProducts?start=${page*pageSize}&end=${page*pageSize+pageSize}`;
var r = new XMLHttpRequest();
r.onreadystatechange = function () {
return new Promise((resolve, reject) =>{
if (r.readyState != 4 || r.status != 200){
reject(r);
} else {
resolve(r.responseText);
}
})
};
r.open("GET", url, true);
r.send(null);
};
fetchData(state, instance) {
this.setState({ loading: true });
this.requestData(
state.pageSize,
state.page,
state.sorted,
state.filtered
).then(res => {
this.setState({
data: res.rows,
pages: res.pages,
loading: false
});
});
}
这两个函数都在一个 React 组件中。问题出在对“未定义”对象调用的最后一个 .then() 上。为什么我的 promise 没有正确返回?
【问题讨论】:
-
requestData不返回任何内容。
标签: javascript ajax reactjs promise xmlhttprequest