원격 JSON-RPC 서비스를 호출하기위한 AngularJS 서비스를 개선하려고합니다.각도 JSON-RPC : 처리 오류
response = {
jsonrpc: "2.0",
result: null,
error: "Description of the error",
id: 1,
}
... "ID"는 식별자이다 예외가 서버 측에서 발생할 때 JSON-RPC 스펙에 따르면, 응답은 동일한 설명에 오류 객체를 포함한다 요청 원본은 서버로 전송됩니다.
향상시키고 자하는 각도 구성 요소 (https://github.com/ajsd/angular-jsonrpc)는 $ http 트랜스 포머를 사용하여 서버의 응답을 처리합니다. 나는 원래의 변압기를 수정하여 새로운 변압기를 다음과 같이 수정했습니다.
transforms.push(function(data) {
//Original code: return data.id === id ? data.result || data.error : null;
if (data.error !== null) {
throw data.error;
}
if (data.id !== id) {
throw '[jsonrpc] Wrong response ID, id = ' + data.id;
}
return data.result;
});
자세히 볼 수 있듯이 오류에 대한 설명과 함께 예외가 발생합니다. 이 서비스는 $ http promises에 기반하고 있기 때문에 서비스의 호출자는 예외를 잡기가 어려울 것입니다.
$ http 변환기를 호출 할 때 사용자가 원래 설정 한 "오류"약속을 $ http 변환기에서 호출 할 수 있습니까?
$http.get(url).then(success(data) {...}, error(data) {...}};
올바른 방법입니까, 아니면 인터셉터를 기반으로 수정해야합니까?