이 같은 JSON-RPC 공급자 (바벨과 웹팩과 transpiled)이 있습니다아마도 처리되지 않은 거부
export default function() {
var id = 1;
function request(method, params) {
return JSON.stringify({
id: id++,
method: method,
params: params || []
});
}
var uri;
this.setup = function(user_uri) {
uri = user_uri;
};
this.$get = ['$http', '$q', function($http, $q) {
function rpc(method, params) {
return $http({
method: 'POST',
url: uri,
data: request(method, params)
}).then(response => response.data);
}
var defer = $q.defer();
rpc('system.describe').then(data => {
var service = {};
data.result.procs.forEach(spec => {
service[spec.name] = function(...args) {
var defer = $q.defer();
if (args.length == spec.params.length) {
return rpc(spec.name, args).then(data => {
if (data.error) {
defer.reject(data.error);
} else {
defer.resolve(data.result);
}
});
} else {
defer.reject('Invalid arity expected ' +
spec.params.length +
' got ' +
args.length);
}
return defer.promise;
};
});
defer.resolve(service);
});
return defer.promise;
}];
};
을 나는 하나의 함수 호출
service.login('user', 'password').then(function(token) {
if (token) {
localStorage.setItem('notes_token', token);
localStorage.setItem('notes_username', 'user');
}
console.log('token: ' + token);
}).catch(function(error) {
console.log(error);
});
을 요청이 오류를 반환하고 난 콘솔이있어 :
토큰 : 정의되지 않은 가능성이 처리되지 않은 거부 [잘못]을 : 사용 내가
catch
에서 CONSOLE.LOG를 얻을이없는 이유는 연구 활동
then
은 실행되지?
나는 또한 시도했다 :
service.login('user', 'password').then(function(token) {
if (token) {
localStorage.setItem('notes_token', token);
localStorage.setItem('notes_username', 'user');
}
console.log('token: ' + token);
}, function(error) {
console.log(error);
});
과 같은 결과를 얻을 수 있습니다. 각도 1.6.3을 사용하고 있습니다.
이 [지연 안티 패턴을] 피 사용하기를 원할 것입니다 (http://stackoverflow.com/q/23803743/1048572?What-is-the-promise-construction-antipattern-and- 방법 피하는 그것!)! – Bergi