2013-04-30 65 views
0

這個簡單的例子有什麼問題?帶公共節點的node.js中的同步請求

我將這段代碼與其他同步/請求示例中的示例進行了比較,但我看不到它。

HttpClient = require('common-node').httpclient.HttpClient 
Fiber = require('fibers') 

google = -> 
    Fiber(() -> 
    console.log(new HttpClient({ 
     url: 'http://google.com' 
    }).finish().body.read(null).decodeToString()) 
).run() 

google() 
+0

當你運行它會發生什麼? – matehat 2013-04-30 20:58:31

+0

請在此問題上添加錯誤,否則我們會被卡住! – TheHippo 2013-05-02 11:32:51

回答

0

我很困惑了一段時間,爲什麼當我登錄響應它會被截斷。最後我讀到響應是可迭代的,並且循環遍歷它似乎是確保您獲得完整響應的唯一方法。

var jsonResponse = function(json_api_url) { 
    var HttpClient = require('httpclient').HttpClient; 
    var response = new HttpClient({url: json_api_url}).finish(); 
    var bodyString = ''; 
    response.body.forEach(function(stream) { 
     bodyString += stream.decodeToString(); 
    }); 
    return JSON.parse(bodyString); 
}