我正在构建一个具有离线功能的应用程序并且正在使用WebSQL(我知道它已被弃用,但它是PhoneGap附带的内容)
我想创建一个SQL查找函数来解析结果,然后调用我传递给findAll
函数的函数。
这是coffeescript,但我可以翻译成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
函数的回调?
答案 0 :(得分: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 = ->) ->
# ...