我使用这段代码异步地使用React-Native发出请求,但似乎它没有得到它。该请求已单独测试,数据应有效。
var data = [{name: 'simon'}];
const req = new XMLHttpRequest();
req.open('GET', testedValidUrl, true);
req.send();
req.onreadystatechange = processRequest;
var name ="";
function processRequest(e) {
if(req.readyState == 4 && req.status == 200){
var response = JSON.parse(req.responseText);
data[0].name = response.name;
}
// setTimeout(()=>{},1000);
}
我认为这可能是因为并发,并且实际应用程序中的大型数组构建所需的时间比从服务器获取数据要少。添加setTimeout()没有修复它。
答案 0 :(得分:0)
var data = [{name: 'simon'}];
const req = new XMLHttpRequest();
function processRequest(e) {
if(req.readyState == 4 && req.status == 200){
var response = JSON.parse(req.responseText);
data[0].name = response.name;
}
req.onreadystatechange = processRequest;
req.open('GET', testedValidUrl, true);
req.send();
var name ="";
如果在发送/打开请求后设置事件处理程序(onreadystatechange),则readyState已经更改,因此不会被调用。