2017-07-16 36 views
1

次のjsアプリケーションでノードnpmモジュールを使用して、apiからデータを取得しています。ノードjs関数からの戻り値

static async getInitialProps() { 
    const zxapi = new Zxapi(connectId, secretKey); 
    const res2 = await zxapi.programs({ region: "DE" }, function(err, result) { 
     if (err != null) { 
      return err 
     } 
     console.log(result, "before return"); 
     return result 
     console.log(result, "after return"); 
    }); 
    return { res2 }; 
} 

res2の値を返す必要があります。 「戻る前に」console.logは、端末にデータを記録し、そこで終了する。私は間違って何をしていますか?ありがとう

+0

としてzxpromise呼び出すことができます '' 'はconsole.log(RES2)' ''ちょうど 'の前に'' return { res2 }; '' 'それがそこにあるかどうかを確認してください。 – ifiok

+0

'return result'がおそらくデータを返しています。 –

+0

@ifiok nope、それは – Kofi

答えて

3

zxapi.programsPromiseを返すかどうか確認できますか?そうでない場合は、Promiseを返す関数を作成する必要があります。例えば

、あなたは

function zxpromise() { 
    return new Promise((resolve, reject) => zxapi.programs({ region: "DE" }, function(err, result) { 
     if (err != null) { 
      reject(err); 
     } 
     console.log(result, "before return"); 
     resolve(result); 
     console.log(result, "after return"); 
    })); 
} 

ようなものを使用することができ、その後、あなたは

const res2 = await zxpromise() 
+0

これは私の問題を解決しました!ありがとう!!!!! – Kofi