我对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-----------------------------");