var content = 'now - not content';
const getHtmlCode = function(){
request(url, function(req, resp, body){
content = body;
});
return content;
};
console.log(getHtmlCode()); // >> now - not content
在控制台中,我可以看到 /现在-没有内容/ ,因为对网站的请求需要2-3秒。
错误的解决方案::我可以在返回时添加setTimeout,但这是非常糟糕的方法。
我如何才能等到返回内容?
答案 0 :(得分:1)
在您的情况下,请在回调中执行console.log()
操作,即
var content = 'now - not content';
const getHtmlCode = function(){
request(url, function(req, resp, body){
console.log(body);
});
};
getHtmlCode();
如果您希望使用Promise,可以尝试以下代码;
function getHtmlCode(){
return new Promise ((resolve, reject)=>{
request(url, function(req, resp, body){
if(!body) reject({message: "No body"});
resolve(message);
});
});
}
getHtmlCode().then((body)=>{
console.log(body)
}).catch(err=>{
console.log(err);
})