所以我遇到了Request和NodeJS的问题,很简单,但我不是专家。
代码:
library(ggplot2)
iris %>%
mutate(id = seq_len(nrow(iris))) %>%
gather(key = Trait, value = Value, Sepal.Length:Petal.Width) %>%
ggplot(aes(x = id, y = Value, color = Trait)) +
geom_point()
输出:
logged: function () {
var request = require('request');
test = "nothing!";
request('http://localhost:8080/log', function (error, response, body){
console.log('error:', error);
console.log('statusCode:', response && response.statusCode);
console.log('body:', body);
test = body;
});
console.log('test', test);
答案 0 :(得分:0)
请求是异步的,因此底层的console.log将在为主体分配测试变量之前执行。
所以console.log需要在请求响应函数中。
如果您希望稍后在响应函数之外使用正文,则取决于您计划如何使用它。
答案 1 :(得分:0)
答案就在这里:How do I return the response from an asynchronous call? 请求是异步调用!
解决方案并不漂亮,但它起作用了!
setTimeout(function() { console.log('test', test);}, 3000);