我知道節點是所有關於異步的東西,但我想要做的事情串行模式如下:如何做事同步的節點
進行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