我打電話func2(應該返回承諾),但承諾沒有得到解決。我解決承諾錯誤或有任何其他問題。請讓我知道什麼是以下問題碼?承諾沒有得到解決,而發送http請求
function func1() {
func2().then(function (data) {
console.log(data);
})
}
var func2 = function() {
var d = q.defer();
var postRequest = {
host: "abc",
path: "/xyz",
};
var buffer = "";
var req = http.request(postRequest, function(res) {
var buffer = "";
res.on("data", function(data) {
console.log("data\n");
buffer = buffer + data;
});
res.on("end", function(data) {
d.resolve(data);
return d.promise;
});
});
console.log('after req');
req.write(body);
req.end();
};
你沒有從你的func2中返回承諾。你不應該在回調中做這件事,但是在函數 –
的最後,我想解決從http.request獲得的數據的承諾。如果我最終解決它,它將爲空。 –
你可以在接收到數據時解決它,但是你在函數的結尾做'return d.promise',這樣你的then語句就可以正常工作 –