2017-05-16 12 views
0

私はNode.jsプログラミングを初めて使っています。私は約束の物について知りに来た。しかし、私の同僚の一人がインタビューの質問に直面しました。Node.js - nodejsで約束している第三者のライブラリを使わずにasyncメソッドを呼び出す

  1. NPM(例ブルーバード約束、)で利用可能なサードパーティの約束ライブラリを使用せずに、私は、(返す約束の機能を実装する必要がある)とキャッチ()関数を以下のように。その後、

    asyncPromise()()キャッチ()例えば

:。。

function asyncFunction(cb){ 
    //----------- 
    cb(err,data); 
} 

function asyncPromise(){ 
} 

私たちは、それはそれは約束として振る舞うようになりますことを、その関数の周りの機能をラップする必要があります。サードパーティのライブラリを使用せずに、上記の両方の機能でこれをどのように達成できますか?

答えて

0

ノードにプロミスが組み込まれ、ノードの最新バージョンが非同期/待機機能のサポートを実装しました。あなたが望むことができる2つの方法があります。私は第2の方法を好む。 P:非同期/を使用して

function asyncFunc(){ 
    return new Promise((resolve, reject) => { 
     if(someError){ 
      // triggers .catch callback 
      return reject('There was an error'); 
     } 
     // triggers .then callback 
     return resolve(); 
    }); 
} 

asyncFunc.then(() => { /* do something */ }).catch(e => { // do something }); 

は約束がnodejsに自生して前に面接の質問が書かれていた場合、私は疑問に思う

function asyncFunc(){ 
    return new Promise((resolve, reject) => { resolve() }); 
} 

async function caller(){ 
    let dataFromPromise; 
    try{ 
     dataFromPromise = await asyncFunc(); 
    } catch(e){ 
     // do something with error 
    } 
    // do something with dataFromPromise 
} 
+0

を待ちます –

関連する問題