私はREST呼び出しを呼び出して約束を返そうとしているので、後でデータを操作することができます。返信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結果)をプリントアウトすることができるよと「満たす呼び出さ:私のRESTサービスは以下を持っている別のファイルにに位置しています
var self = this;
var returnPromise;
returnPromise = self.httpService.testService();
returnPromise.then(function(result){
console.log(result);
});
"コンソールが印刷されます。
問題は、私はundefinedを返します最初のページで
returnPromise.then
、そのに ".then" です。
私は、RESTが私に応答を返す前に、約束がされていると思っていました。だから、私はタイムアウト機能をテストすることを考えました。
setTimeout(
function(){
console.log(returnPromise);
}
, 5000);
でも、returnPromiseは私に「未定義」を返します。
"testService()"のソースコードを少なくとも投稿する必要があります。 –
'self.httpService.testService();は何を返していますか?約束? ... '.then'は未定義です。あるいは、コールバックが定義されていない' result'です。 –
_ "私のRESTサービスは、次のファイルを持っています:" _別のファイル内の "javascriptは、呼び出された関数内にありますか? – guest271314