2016-06-13 6 views
0

私はurl1を渡して緯度という値を取得し、それを使って新しいURLを作り、それを別の要求関数に渡す要求関数を持っています。だから、どのように私はその要求機能の外に1つの要求機能に要求関数から値を取得して別の要求関数に渡す

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からの応答を待つ場合を除き、有効な値を取得することはできません。 –

関連する問題