2017-10-31 8 views
-1

나는 'es6-promisify'를 사용하여 promisifed 한 기능을 가지고있다. 'q'를 사용하여 기능을 복제하고 싶습니다. 여기 q를 사용하여 함수를 보증하는 방법과 오류 처리를 관리하는 방법은 무엇입니까?

내가 사용하고 샘플 코드입니다 : 또한

const promisify = require('es6-promisify') 

function asyncFunction (done) { 
    console.time('asyncFunction') 
    setTimeout(() => { 
    console.timeEnd('asyncFunction') 
    done() 
    }, 500) 
} 

const asyncFunctionPromise = promisify(asyncFunction) 

를, 내가 promisified 가지고 말했다 기능을 실행하는 동안 오류가 발생하는 말할 수 있습니다. 어떻게 이러한 오류를 처리합니까?

+0

문서를 (의도 된 말장난.) : https://github.com/kriskowal/q#using-deferreds – Joel

+0

이미으로 재 작성하려고 무엇을 우리에게 보여주십시오' 'Q''. 그렇지 않으면 당신을 도울 방법을 알기가 어렵습니다. –

+0

그것은 나를 위해 지금 일했다 –

답변

0

나는 꽤 많은 시간 동안 'q'라이브러리를 뒤적 거리며 마침내 생각했다.

내가 한 일은 다음과 같습니다. 아주 간단합니다. 이제 생각해 보겠습니다.

const q = require('q') 

function asyncFunction (done) { 
    console.time('asyncFunction') 
    setTimeout(() => { 
    console.timeEnd('asyncFunction') 
    done() 
    }, 500) 
} 

const asyncFunctionPromise = q.denodeify(asyncFunction) 

그냥 대신

const promisify = require('es6-promisify') 

사용

const q = require('q') 

및 교체

const asyncFunctionPromise = promisify(asyncFunction) 

const asyncFunctionPromise = q.denodeify(asyncFunction) 

오류 처리와 관련하여 : 함수 내에서 오류를 처리하십시오. Promise는 자동으로 이러한 오류를 처리합니다.

추신 : 약속을 만들려면 q.deferred를 사용할 수도 있습니다. jQuery.deferred와 비슷한 구문을 사용합니다.

희망이 깨진 약속에 관한 문제가있는 사람이 도움이