2016-06-13 57 views
0

我有一个请求函数,我通过url1并获取一个名为latitude的值,然后使用它创建一个新的url并将其传递到另一个请求函数中。所以,我怎么使用一个请求函数获得的值是要求功能从请求函数中获取值并将其传递到另一个请求函数中

var url1 = {some url} 
var latitude; 
request(url1, function (error1, response1, body1) { 
    if (error1){ 
     return console.log('Error:', error1); 
    } 

    if (response1.statusCode !== 200) { 
     return console.log('Invalid Status Code Returned:', response1.statusCode); 
    } 

    var obj1 = JSON.parse(body1); 
    latitude = obj1.response.data[0].latitude; 
}); 

// I want to use this latitude that to make a new url and use it another request function   
var url2 = {some url + latitiude} 
request(url2, function (error2, response2, body2) { 
    if (error2) { 
     return console.log('Error:', error2); 
    } 

    if (response2.statusCode !== 200) { 
     return console.log('Invalid Status Code Returned:', response2.statusCode); 
    } 
}); 

那么,如何通过纬度值从第一个请求函数新URL2之外?当我尝试纬度变量时,在第一个请求函数外不可访问。

+0

回调或承诺。 –

回答

0

可以使用回调来传递从第一函数向第二函数获得的值,

var url1= {some url}   
var latitude; 
request(url1, function (error1, response1, body1) {  
    //some code 
    var obj1= JSON.parse(body1);  
    latitude = obj1.response.data[0].latitude;  

    var url2 = {some url + latitiude}  
    request(url2, function (error2, response2, body2) {  
     //some code   
    }); 
});  
+0

现在我已经做了同样的事情,但是如果我想分开2个请求函数而不是在另一个内部使用它们呢? – user17422

+0

你的代码是'async'。当时,你试图访问'url2',它是'undefined'。除非您等待来自request1的响应,否则无法获取有效值。 –

相关问题