2017-06-11 5 views
0

関数の名前を付けてコールバックを避けようとしていますが、元のスコープの一部ではないオブジェクトを渡すことを要求できませんか?親メソッドのここで元のリクエストをコールバック関数に渡すにはどうすればよいですか?

は私が最適化しようとしている作業コードです:

//req exists, as this is inside an Express route handler 
charge.create({ 
    amount: req.body.amount 
    //... 
}, function(err, createdCharge) { 
     console.log('Purchased: '+req.body.product); 
     res.send('Success'); 
} 

私は自分のコードをモジュール化しようとするとcharge.create方法が何かあることから、私は、REQオブジェクトを渡す方法についてはわかりませんよ私はしなかったので、私はそれが他の引数を受け入れることはできません。

charge.create({ 
    amount: req.body.amount 
    //... 
}, confirmCharge); 

function confirmCharge(err, createdCharge) { 
     console.log('Purchased: '+req.body.product); //req doesn't exist! 
} 

答えて

0
charge.create({ 
    amount: req.body.amount 
    //... 
}, confirmCharge(req)); 

function confirmCharge(req) { 
     console.log('Purchased: '+req.body.product); //req exists! 
} 
+0

charge.create戻り誤るとcreatedChargeと私はconfirmChargeを呼び出すときに指定する必要はありませんでした。 confirmCharge(req)を置くと、Unknownの引数が出ます。 – koleslaw

+0

すぐに使える解決策が必要な場合は、コードを掲示する必要があります。 – sidewinder

+0

私はストライプフォームを使用しています。 https://stripe.com/docs/charges 'var token = request.body.stripeToken; //使用エクスプレス //チャージユーザのカード: VAR電荷= stripe.charges.create({ 量:1000、 通貨: "USD"、 説明: "例チャージ"、 源:トークン、 } 、function(err、charge){ //非同期に と呼ばれる}); ' – koleslaw

関連する問題