2017-05-07 55 views
0

我使用这段代码来异步使用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

fetch api更好选项https://facebook.github.io/react-native/docs/network.html –

+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的已经改变,因此它不会被调用。