我試圖調用一個REST調用並返回一個承諾,以便我可以操作後面的數據。從REST調用返回承諾
var self = this;
var returnPromise;
returnPromise = self.httpService.testService();
returnPromise.then(function(result){
console.log(result);
});
我的REST服務位於,其中具有以下另一個文件:
testService() {
console.log("start of testService");
var request = require('request');
var user = "test";
var ipadd = "127.0.0.1";
request({
url: 'https://' + 'LocalHost' + '/URLOFWEBSERVICE',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
userID: user,
userIpAddress: ipadd
}
}, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(response.statusCode, body);
var newPro = new Promise(function(fulfill, reject) {
fulfill(body);
});
console.log(newPro);
return newPro;
}
});
}
我能夠打印出response.stateCode,身體(REST結果)和「履行調用「控制檯打印出來。
的問題在於
在 第一頁returnPromise.then
,其中「於是」返回我不確定。
起初我以爲它可能是在REST返回給我回復之前已經調用的承諾。所以,我想做一個超時功能來測試。
setTimeout(
function(){
console.log(returnPromise);
}
, 5000);
但即便如此,returnPromise返回「未定義」。
您至少需要發佈'testService()'的源代碼。 –
什麼是'self.httpService.testService();'返回?一個承諾? ...是'.then'未定義或者是'result'.then callback undefined? –
_「我的REST服務位於另一個文件中,該文件具有以下內容:」_是否在被調用的函數中的'javascript'位於「另一個文件中」? – guest271314