홈>
연구와 여러분의 도움으로 사람들이 Javascript 약속을보다 명확하게 이해하는 데 도움이 될만한 코드를 작성하고 주석을 달 수있었습니다.
제 질문은 JSON 파일 이름을 의도적으로 잘못 입력하여 catch를 트리거하려고 할 때 아무 일도 일어나지 않는다는 것입니다. 오류가 없습니다. 계속하지 마십시오. 아무것도. 왜?
왜 안되 ...
else reject( new Error( 'We could not load the URI: ' + uri ) );
... 던지는?
JSON 파일을 가져올 때 교차 출처 문제없이 시각화 할 수있는 URL
테스트 페이지
의 내용 resultset.json
[
{
"PK_USER_TIME_LOG_ID": 120,
"CLIENT_ID": 111,
"PROJECT_ID": 222,
"USER_ID": 465605,
"UTL_DTSTAMP": "2018-01-15 17:56:06",
"UTL_LATITUDE": "40.61105890",
"UTL_LONGITUDE": "-111.89993530",
"UTL_EVENT": "CLOCK IN",
"UTL_ACTION": "MEETING",
"UTL_DURATION": 3
},
{
"PK_USER_TIME_LOG_ID": 122,
"CLIENT_ID": 111,
"PROJECT_ID": 222,
"USER_ID": 465605,
"UTL_DTSTAMP": "2018-01-15 17:56:19",
"UTL_LATITUDE": "40.61105890",
"UTL_LONGITUDE": "-111.89993530",
"UTL_EVENT": "CLOCK IN",
"UTL_ACTION": "TRAVEL",
"UTL_DURATION": 5
},
{
"PK_USER_TIME_LOG_ID": 123,
"CLIENT_ID": 111,
"PROJECT_ID": 222,
"USER_ID": 465605,
"UTL_DTSTAMP": "2018-01-15 17:56:24",
"UTL_LATITUDE": "40.61105890",
"UTL_LONGITUDE": "-111.89993530",
"UTL_EVENT": "CLOCK IN",
"UTL_ACTION": "TEAR OUT",
"UTL_DURATION": 3
}
]
2018 년 8 월 1 일에 자바 스크립트 약속 코드 업데이트
$(document).ready(function() {
console.log('1. Document is ready.');
// Run the App.
runApplication();
});
// anything we would like to run *** BEFORE *** getURI( obj ) function is called.
var runFirst = function runFirst() {
console.log( '2. Promise > runFirst() function called.' );
};
// We create a variable called getURI and assign it a function getURI( uri )
var getURI = function getURI( uri ) {
console.log('3. Promise > getURI( uri ) function called.');
// We then create a new Promise (Which is a wrapper..) to return.
return new Promise( function( resolve, reject ) {
// Our JSON request..
$.getJSON( uri, function( data ) {
// if data is not defined OR an empty string...
if (data =! true || data.length < 1) {
// Create a new error and...
var error = new Error();
// Inject an error status code of 204.
error.status = 204;
// Reject Promise with custom error.
reject( error );
} else {
// Continue...
resolve( data );
}
}).fail( reject );
// Invoke Promise Reject so we can handle the Ajax .fail() by status code.
}); // End promise.
};
// obj edit In Progress.
var processData = function processData( obj ) {
console.log( '3.2 Promise > processData( obj ) function called.' );
// Parse array of arrays if we have to. (For resultSet containing more than one record..)
$.each(obj, function( i, row ) {
// DO...
// Get current row.USER_ID from current row.
console.log('3.2.1 Get: row.USER_ID = '+ row.USER_ID);
// AND OR..
// Set current row.USER_ID to something else..
row.USER_ID = 'something else..';
// AND OR..
// Push a new_element into current row..
row.new_element = 'something new!';
//THEN...
// Get updated row.USER_ID from current row.
console.log('3.2.2 Set: '+ row.USER_ID);
}); // End jQuery for each loop
// Return Original and/or Augmented fectched object.
return Promise.resolve(obj);
};
// obj Done editing. Now we render it. (Display the most up to date version of it.)
var renderData = function renderData( obj ) {
console.log( '3.3 Promise > renderData( obj ) function called.' );
//console.log( obj );
// Return fectched object after being proccessed by processData.
return Promise.resolve(obj);
};
// anything we would like to run *** AFTER *** our getURI( uri ) function is called.
var runLast = function runLast( obj ) {
console.log( '3.4 Promise > runLast() function called.' );
console.log( '3.5 Promise > Successful $.getJSON() response received.' );
// Return fectched object after being proccessed by renderData.
return Promise.resolve(obj);
};
// error handling for $.getJSON() and anything else.
var handleError = function handleError( error ) {
console.log( 'Error - Promise > handleError( error ) function called.' );
console.log( 'Error - We found an error while fetching and/or augmenting some data.' );
// Error if $.getJSON() is status: 204 No Content.
if (error.status == 204) {
console.error( '$.getJSON() .status: ' + error.status + ' - No Content.');
return;
}
// Error if $.getJSON() is status: 404 Not Found.
if (error.status == 404) {
console.error( '$.getJSON() .status: ' + error.status + ' - Not Found.');
return;
}
// Error unknown...
console.log(error);
};
// We create a variable called runApplication and assign it a function runApplication()
var runApplication = function runApplication() {
console.log( '1.1 runApplication() function called.' );
// Similar to Ajax beforeSend()..
runFirst();
// getURI request execution order...
getURI( 'resultset.json' ) // entering Promise...
.then( processData ) // process the data...
.then( renderData ) // render the processed data...
.then( runLast ) // finalize...
.catch( handleError ); // catch our Ajax and Custom errors.)
};
- 답변 # 1
관련 자료
- html - 자바 스크립트 - eventkeycode에 대한 작은 오류
- asynchronous - Javascript Promise를 추상화하고 then을 유지하는 방법
- javascript - 오류 - : uncaught (약속) typeerror : 정의되지 않은 속성"content"를 읽을 수 없습니다
- rxjs - 여러 API 호출 중 각도 오류 처리
- asynchronous - javascript의 then에서 약속을 반환하거나 해결할 수 있습니까?
- asynchronous - 자바 스크립트에서 값 비싼 계산을 위해 promise all ()을 사용합니까?
- node.js - nodejs의 promise에서 JavaScript 객체를 반환하는 문제
- Django에서 예외를 제외하고 try를 사용한 오류 처리
- unit testing - PHP S3Client uploadAsync 메서드의 오류 처리 테스트
- node.js - Uncaught (약속) 오류가 발생합니다 상태 코드 401로 요청이 실패했습니다
- html - javascript error uncaught referenceerror - seteven이 htmlspanelementonclick에 정의되어 있지 않습니다
- 자바 스크립트를 연습하고 if 문에서 오류가 발생했습니다
- javascript - 약속이 해결되면 catch에서 오류를 전달하는 방법은 무엇입니까?
- 자바 스크립트 약속 실행 타이밍 문제
- reactjs - 포착되지 않은 (약속에서) 오류 - 요청이 상태 코드 400으로 실패했습니다
- c++ - 객체를 즉시 파괴하지 않고 생성 할 때 오류 처리를 위해 std - : optional을 사용하는 방법은 무엇입니까?
- html - Javascript TypeError 코드 오류, 변수가 정의되지 않음
- reactjs - javascript, 유형 오류 - informationmap이 함수가 아닙니다 || map을 사용하는 방법?
- javascript sinusbot postgresql \ 오류 - pq : 문자 유형에 대한 값이 너무 깁니다 (1)
- python - 온도 센서에서 오류 처리
관련 질문
- JavaScript가 값을 가져 오지 않습니다
- javascript : 쉼표로 쉼표로 구문 분석
- javascript : RGB /RGBA 문자열에서 빨간색 녹색과 파란색 값을 어떻게 얻을 수 있습니까?
- javascript : 자바 내의 값을 기반으로 상위 DIV에 사용자 지정 HTML 속성 추가태그 현재 웹 페이지 링크 일치
- javascript : JSON 데이터가 HTML 테이블로 문제점을 추가하십시오
- javascript : jQuery -URL에서 괄호로 배경 이미지를 설정합니다
- javascript : DataTables를 내림차순으로 정렬 하시겠습니까?
- javascript : ScrollWidth IE.에서 동일한 값을 반환합니다
- javascript : 유니 code Ajax ResponseText에서 이미지를 보여주는 방법은 무엇입니까?
- javascript : jQuery에 나타나는 요소를 기다리고 있습니다
아약스 오류를 잡으려면
.fail
메소드를 추가하십시오. 후. 의사가 말했듯이,$.getJSON
자동 오류가 있습니다 ..