在节点js中回调变量范围

时间:2014-07-16 02:55:56

标签: javascript node.js express callback

我对node.js非常环保,我理解由于回调的异步特性,在变量str设置之前不会返回回调。
我注意到第165行成功打印出来,但由于上述原因,171行失败了。

我已阅读了几篇帖子,但无法理解如何重新编写代码,因此变量str包含第165行中console.log的内容。我尝试使用.binds {str:str}进行实验,但是没运气。一旦完成,我如何获得回调范围之外的str的内容?

154 var str;
155 var  callBack  = function(response) {
156 var str = '';
157
158  //another chunk of data has been recieved, so append it to `str`
159   response.on('data', function (chunk) {
160    str += chunk;
161   } );
162
163  //the whole response has been recieved, so we just print it out here
164  response.on('end', function () {
165  console.log("******************"+str+"*********************");
166   });                        
167 };  
168                       
169   http.request(url, callBack).end();                            
170   console.log(str);                              
171   console.log("outside of callback---------------------xxx"+str+"xxx-----------------------------");

0 个答案:

没有答案