2

私はオフライン機能を備えたアプリを構築しており、WebSQLを使用しています(非推奨であることはわかっていますが、PhoneGapに付属しているものです)

結果を解析してから、関数に渡す関数を呼び出すSQL検索関数を作成したいと思いますfindAll。これはコーヒースクリプトですが、答えが得られればJavascriptに翻訳できます。

class window.TimeTravelDB

  findAll: (tableName, callback) ->
    @db.transaction (tx) ->
      tx.executeSql("Select * from #{tableName}", [], @db.querySuccess, @db.onError)

  querySuccess: (tx, results) ->
    rows = results.rows
    results = (JSON.parse(rows.item(i).data) for i in [0...rows.length])
    callback(results)
    return @results

querySuccess関数内の関数のコールバックを指定するにはどうすればよいfindAllですか?

4

1 に答える 1

3

querySuccessに直接移動するのではなく、中間のコールバックを使用して、次の=>コンテキストを保持することができ@dbます。

(tx, results) => @db.querySuccess(tx, results, callback)

これにより、callback渡された先に転送できるようになりfindAllます。

findAll: (tableName, callback) ->
  @db.transaction (tx) ->
    tx.executeSql("Select * from #{tableName}", [],
      (tx, results) => @db.querySuccess(tx, results, callback),
      @db.onError
    )

querySuccess次に、引数を調整します。

querySuccess: (tx, results, callback = ->) ->
  # ...
于 2011-09-09T05:21:05.837 に答える