댓글의 두 답변과는 달리 차이가 있습니다.
동안
Promise.resolve(x);
기본적으로 다음과 같습니다.
new Promise(function(r){ r(x); });
미묘함이 있습니다.
Promise 반환 함수는 일반적으로 비동기 적으로 throw 될 수 있으므로 동 기적으로 throw되지 않아야한다는 보장이 있어야합니다. 예상치 못한 결과와 경쟁 조건을 방지하기 위해 일반적으로 던지는 거부로 변환됩니다.
이를 염두에두고-스펙이 생성되었을 때 promise 생성자는 안전하게 던져집니다.
어떤 경우 someObject
이다 undefined
?
- Way A는 거부 된 약속을 반환합니다.
- 방법 B는 동 기적으로 던집니다.
Bluebird는 이것을 보았고 Petka는 Promise.method
이 문제를 해결하기 위해 추가하여 반환 값을 계속 사용할 수 있습니다. 따라서 Bluebird에서 이것을 작성하는 정확하고 쉬운 방법은 실제로 둘 다 아닙니다.
var someFunction = Promise.method(function someFunction(someObject){
someObject.resolved = true;
return someObject;
});
Promise.method는 throw를 거부로 변환하고 해결로 돌아갑니다. 이 작업을 수행하는 가장 안전한 방법이며 then
반환 값을 통해 능력을 동화 하므로 someObject
실제로 약속 자체 인 경우에도 작동 합니다.
일반적으로 Promise.resolve
Promise에 대한 객체 및 외부 Promise (thenables)를 캐스팅하는 데 사용됩니다. 그것이 유스 케이스입니다.
Promise.resolve
그냥 설탕입니다.