홈>
다음은 현재
Yahtzee
를 기록합니다.
노드, 크롬, 파이어 폭스에서.
알다시피, Promise의 프로토 타입도 설정되지 않았습니다.
const fake = new Number(1)
fake.then = fn => setTimeout(fn, 0, 'Yahtzee')
const main = async () => {
console.log(await fake)
}
main()
이것은 보편적으로 작동합니까? 더 중요한 것은이 행동이 지속될 것입니까?
-
답변 # 1
예, 작동합니다. 사양에 따르면 새로운 약속이 호출되어 해당 값으로 해결됩니다. 와이즈 비즈 thenable과 작동하므로
Promise.resolve
에서도 동일하게 작동합니다.위의 내용은
와이즈 비즈는 어디에
const fake = new Number(1) fake.then = fn => setTimeout(fn, 0, 'Yahtzee') const main = async () => { console.log(await Promise.resolve(fake)) } main()
를 호출하는 메소드 개체에..resolve()