我知道节点是所有关于异步的东西,但我想要做的事情串行模式如下:如何做事同步的节点
进行API请求>转化体的XML JSON.stringify>通字符串模板。
request.get({url:url, oauth:oauth}, function(err, res, body){
parseString(body, function(err, result){
output = JSON.stringify(result);
res.render('home', { title: 'Fantasy Home',
output: output });
});
});
现在我想按顺序做,但所有的回调我很困惑。
由于res对象不存在,res.render无法嵌套在回调中。让它在外面不起作用,因为它会在回调执行之前运行,所以你会得到“未定义”的输出。
必须有一种方法可以按顺序进行操作。为什么一切都是回调?为什么这些函数不能只返回一个常规的非回调结果?
我该如何做这项工作?
至于为什么:@tjameson解释得很好[这里](https://stackoverflow.com/a/17608144/3378621) –
'res.render不能嵌套在回调中,因为res对象不会'这是完全错误的。 res对象存在。如果你有错误,那么这不是错误的原因 – slebetman
你的代码已经按顺序运行就好了。访问'res'可能不起作用,因为你使用'request.get'回调的'res'参数来映射它。 – Bergi