2017-10-31 10 views
-1

私は 'es6-promisify'を使ってpromisifした機能を持っています。私は '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) 

01と

エラー処理に関して:関数内のエラーを処理します。プロミスはこれらのエラーを自動的に処理します。

PS:q.deferredを使用してPromisesを作成することもできます。 jQuery.deferredと似た構文をしています。

希望これは壊れた約束に関する問題を持つ人に役立ちます

関連する問題