Promise 소계
Promise
Promise.prototype.catch()
Promise 상태가 Resolved가 된 경우 오류를 다시 내보내는 것은 유효하지 않습니다.var promise = new Promise(function(resolve, reject) {
resolve('ok');
throw new Error('test');
});
promise
.then(function(value) { console.log(value) })
.catch(function(error) { console.log(error) });
// ok
위 코드에서 Promise는resolve 문장 뒤에 오류를 던졌습니다. 잡히지 않습니다. 던지지 않은 것과 같습니다.
Promise 대상의 오류는 포획될 때까지 뒤로 전달됩니다.즉, 오류는 항상 다음catch 문장에 잡힌다.getJSON("/post/1.json").then(function(post) {
return getJSON(post.commentURL);
}).then(function(comments) {
// some code
}).catch(function(error) {
// Promise
});
위의 코드에는 모두 세 개의 Promise 대상이 있습니다. 하나는 getJSON에서 발생하고 두 개는 then에서 생성됩니다.그것들 중 어떤 오류도 마지막catch에 포착됩니다.
전통적인try/catch 코드 블록과 달리,catch 방법으로 오류 처리된 리셋 함수를 지정하지 않으면,Promise 대상이 던진 오류는 외부 코드로 전달되지 않으며, 아무런 반응이 없습니다.var someAsyncThing = function() {
return new Promise(function(resolve, reject) {
// , x
resolve(x + 2);
});
};
someAsyncThing().then(function() {
console.log('everything is great');
});
위 코드에서 someAsyncThing 함수에서 발생하는 Promise 대상은 오류를 보고하지만, catch 방법을 지정하지 않았기 때문에 이 오류는 포착되지 않고 외부 코드로 전달되지 않아 실행 후 출력이 없습니다.크롬 브라우저가 이 규정을 준수하지 않으면 "ReferenceError: x is not defined"오류가 발생합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
var promise = new Promise(function(resolve, reject) {
resolve('ok');
throw new Error('test');
});
promise
.then(function(value) { console.log(value) })
.catch(function(error) { console.log(error) });
// ok
getJSON("/post/1.json").then(function(post) {
return getJSON(post.commentURL);
}).then(function(comments) {
// some code
}).catch(function(error) {
// Promise
});
var someAsyncThing = function() {
return new Promise(function(resolve, reject) {
// , x
resolve(x + 2);
});
};
someAsyncThing().then(function() {
console.log('everything is great');
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.