第一个$ http.post承诺(当与.then一起使用时)返回一个没有问题的对象,但是当我嵌套另一个$ http.post承诺(也用于.then)时,我永远无法返回一个对象。无论我做什么,它总会回报承诺。
function getDocumentPages($http) {
var data = { fileName: '@fileNameUrlSafe' };
return $http.post(controllerBaseUrl + "GetDocumentPages", data)
.then(function successCallback(response) {
// =======================================
// THE LINE BELOW ALWAYS RETURNS A PROMISE
// =======================================
var fieldPages = getDocumentFormFields($http);
var tempModel = {
pages: response.data,
fieldPages: fieldPages
};
return tempModel;
}, function errorCallback(response) {
console.log(response);
});
}
function getDocumentFormFields($http) {
var data = { fileName: '@fileNameUrlSafe' }
return $http.post(controllerBaseUrl + "GetDocumentFormFields", data)
.then(function successCallback(response) {
return response.data;
}, function errorCallback(response) {
console.log(response);
});
}
答案 0 :(得分:1)
function getDocumentPages($http) {
var data = { fileName: '@fileNameUrlSafe' };
return $http.post(controllerBaseUrl + "GetDocumentPages", data)
.then(function successCallback(response) {
// =======================================
// THE LINE BELOW ALWAYS RETURNS A PROMISE
// =======================================
return getDocumentFormFields($http).then(function(fieldPages) {
var tempModel = {
pages: response.data,
fieldPages: fieldPages
};
return tempModel;
});
}, function errorCallback(response) {
console.log(response);
});
}
像这样使用:
getDocumentPages($http).then(function(response) {
//Do something with the response
console.log(response);
});
这应该有效!