我有这个Beservice.js,在这里我正在处理后端响应。我的proxydata包括整个响应以及标头,配置,状态和数据。在这里,我只需要传递数据和状态,因此我将其分配给if条件中的变量,并使用此dfr.resolve(status,data);
它只会让我获得状态的价值,而不会获得数据。同时,dfr.resolve(data,status );
可以获取数据,但不能获取状态,需要解决方案。不知道我在想什么。
BeService.JS
define([
'angular',
'services-module',
'vruntime'
], function (angular, services, vRuntime) {
'use strict';
var $http, $q;
var BeService = vRuntime.BaseClass.extend({
asn: function (form) {
var dfr = $q.defer();
$http.post('upload', form, {
headers: {'Content-Type': undefined}
}).then(function (proxydata) {
var data;
var status;
console.log(proxydata);
if (proxydata) {
status = proxydata.hasOwnProperty('status') ? proxydata.status : proxydata;
data = proxydata.hasOwnProperty('data') ? proxydata.data : proxydata;
}
dfr.resolve(status,data);
}, function (res) {
var err;
if (res.status !== 400 && res.status !== 500) {
try {
err = res.data || res.data.error || res.data.error_message;
} catch (ex) {
err = 'Web Service not available';
}
dfr.reject(err);
} else {
dfr.reject(res);
}
});
return dfr.promise;
}
});
services.service('BeService', ['$q', '$http', function (_$q_, _$http_) {
$q = _$q_;
$http = _$http_;
return new BeService();
}]);
return new BeService();
});