3

비동기 함수를 만들면 암시 적으로 항상 약속을 반환합니다.TypeScript 비동기 반환/던지는 오류

첫째, async 기능을 사용할 때 실제로

Promise.reject(new Error(...))throw new Error(...)

당신이 코드베이스의 일관성이 아닌 다른 이유로 다른 통해 하나를 사용해야를 반환 사이에 어떤 차이가?


둘째, 어떤 유형입니까?

VS 코드를 기준으로 Promise.reject(new Error(...))Promise<Never>을 반환합니다. throw new Error(...)은 동일한 것을 반환합니까?


셋째, 당신은 그것을 거부 약속을 반환 할 경우에 약속 할 수있는 다기능 형 서명을 변경해야합니까? 거부 된 약속 유형이 있습니까? 이것은 심지어 의미가 있습니까?

감사합니다. 여기

+0

에만 [그들은 같은 일이야]) 포스트 – Bergi

+0

1 당 하나 개의 질문을하십시오 (https://stackoverflow.com/q/33445415/1048572) 2)'throw'는 아마'void' 타입을 가지고 있습니다 만, 표현식이 아니기 때문에 전혀 쓰이지 않을 수도 있습니다 - return' 3) 네, 맞습니다. 그러나 TypeScript는 너무 복잡 할 것 같아서하지 않았습니다. – Bergi

+0

https://github.com/Microsoft/TypeScript/issues/7588 https://github.com/Microsoft/TypeScript/issues/6283 https : /를 참조하십시오. /stackoverflow.com/questions/39381940/typescript-type-definition-for-promise-reject – Bergi

답변

-3

, ...

function asyncFunc(callback,delay){setTimeout(callback,delay);} 

function myFunction(param){ 
    alert(param); 
} 

을이 시도하고이 :

<button onclick="asyncFunc(myFunction(this.innerHTML),0);">click</button> 

Demo

+0

올바른 스레드에 응답을 게시 했습니까? – Bergi

+0

Btw,'asyncFunc' 호출의'callback'은'undefined'입니다. – Bergi