0
私は、これはコードJS持っている:コールバックとして関数を渡すには?
Download.prototype.insert = function(stocks, exchange, cb){
var self = this
, count = stocks.length
stocks.forEach(function(stock){
save(stock, done)
})
function save(stock, cb){
self.mysql.query("my query", [exchange.id, stock.Symbol], function(err, rows){
if (rows && rows.length > 0)
self.mysql.query("my query", [rows[0].id, stock.DateTime, stock.Close], cb)
else cb()
})
}
function done(){
count--
if (count === 0) return cb()
}
}
あなたは私がsave()
関数にコールバックを渡す見ることができるように、私はfunction(err, rows){ .... }
の問題を使用しないようにクエリを分離できるかどうかを知りたいとその関数は2つのパラメータerr
とrows
を待っているので、カスタム第3パラメータ(cb()
関数)も渡すにはどうしたらいいですか?
おかげ
匿名の 'function(err、rows)'の内部では、依然として外側のスコープから 'cb'を参照することができるので、あなたのやり方は大丈夫だと思います。 'cb'をもう一度渡す必要はありません。 –
これも私の最初の考えでしたが、Dailはクエリを分離したいだけで、mysql.queryに "done"コールバックパラメータを含むコールバック関数を渡す方法を探していたと思います。 –
afaikがダウンしていますjqueryのコールバックはparamsを受け入れることができます。あなたが渡しているコールバックがparamsを取るかどうかについては、あなたが判断します。[this](http://jsfiddle.net/dafastestfingers/EBLx8/1 /)を実行し、パラメータで遊びます –