Promise 상태가 resolve 또는 Reject로 표시되는 방법
루트 Promise 개체 내에서
루트 대상의 창설은 일반적으로 현식 new 하나의 Promise 대상을 통해 창설됩니다new Promise( (resolve, reject) => {
if (...) {
resolve(value1)
}
else {
reject(value2)
}
})
방법 1: 상태 변천을 표시하기 위해 Resolve나reject를 호출합니다. 예를 들어new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
new Promise((resolve, reject) => { reject("FAIL") })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과$ node test.js
THEN : SUCC
THROW: FAIL
방법2: 이상 (throw) 명령을 던져서rejected 상태 변천을 표시합니다.return 문장으로resolved 상태 변천을 표시할 수 없습니다. 이return 값은 어디로 되돌아갈지 모릅니다.
예.new Promise((resolve, reject) => { return "SUCC" })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
new Promise((resolve, reject) => { throw "FAIL" })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과$ node p.js
THROW: FAIL
return 문장에 표시된 Promise는 Resolved 상태도 rejected 상태도 아닌 상태 변천이 일어나지 않은 것을 볼 수 있다.
뿌리가 아닌 Promise 체인 안에 있어요.
방법1: 리셋 (return)을 통해resolved 상태와 버퍼 이상 (throw)을 표시하고rejected 상태를 표시합니다new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); return "SUCC1" })
.then((value) => { console.log("THEN-2 : " + value); })
.then((value) => { console.log("THEN-3 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행$ node p.js
THEN-1 : SUCC
THEN-2 : SUCC1
THEN-3 : undefined
return 문장 표시 상태가 Resolved입니다.리턴 (return) 문장이 없으면 직접 리턴하는 것과 같고, 리턴 값이 없습니다. 다음 Promise에는undefined 값을 매개 변수로 받을 것입니다.
rejected의 예new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); throw "FAIL" })
.then((value) => { console.log("THEN-2 : " + value); return })
.then((value) => { console.log("THEN-3 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과$ node p.js
THEN-1 : SUCC
THROW: FAIL
throw 문에서 Promise 상태가 Rejected로 변경됩니다.
방법2: 새 Promise 대상을 만들고 새 Promise에서 리소스나 리소스를 현저하게 호출해서 상태를 표시합니다new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); return new Promise((resolve, reject) => { resolve("SUCC1") }) })
.then((value) => { console.log("THEN-2 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과$ node p.js
THEN-1 : SUCC
THEN-2 : SUCC1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
new Promise( (resolve, reject) => {
if (...) {
resolve(value1)
}
else {
reject(value2)
}
})
new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
new Promise((resolve, reject) => { reject("FAIL") })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
$ node test.js
THEN : SUCC
THROW: FAIL
new Promise((resolve, reject) => { return "SUCC" })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
new Promise((resolve, reject) => { throw "FAIL" })
.then((value) => { console.log("THEN : " + value) })
.catch((reason) => { console.log("THROW: " + reason) })
$ node p.js
THROW: FAIL
방법1: 리셋 (return)을 통해resolved 상태와 버퍼 이상 (throw)을 표시하고rejected 상태를 표시합니다
new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); return "SUCC1" })
.then((value) => { console.log("THEN-2 : " + value); })
.then((value) => { console.log("THEN-3 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행
$ node p.js
THEN-1 : SUCC
THEN-2 : SUCC1
THEN-3 : undefined
return 문장 표시 상태가 Resolved입니다.리턴 (return) 문장이 없으면 직접 리턴하는 것과 같고, 리턴 값이 없습니다. 다음 Promise에는undefined 값을 매개 변수로 받을 것입니다.
rejected의 예
new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); throw "FAIL" })
.then((value) => { console.log("THEN-2 : " + value); return })
.then((value) => { console.log("THEN-3 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과
$ node p.js
THEN-1 : SUCC
THROW: FAIL
throw 문에서 Promise 상태가 Rejected로 변경됩니다.
방법2: 새 Promise 대상을 만들고 새 Promise에서 리소스나 리소스를 현저하게 호출해서 상태를 표시합니다
new Promise((resolve, reject) => { resolve("SUCC") })
.then((value) => { console.log("THEN-1 : " + value); return new Promise((resolve, reject) => { resolve("SUCC1") }) })
.then((value) => { console.log("THEN-2 : " + value); })
.catch((reason) => { console.log("THROW: " + reason) })
실행 결과
$ node p.js
THEN-1 : SUCC
THEN-2 : SUCC1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.