gpt4 book ai didi

Javascript 将 SQL 结果绑定(bind)到一个函数

转载 作者:行者123 更新时间:2023-11-29 22:31:34 25 4
gpt4 key购买 nike

全部,

我正在使用 WebOS enyo,但有一个非常高级的时刻....

基本上它的 enyo 与我的问题无关......

我有一个方法:

clickPopulate: function(){

// Do some SQL

};

我正在使用一个数据库类来处理我的 SQL lite Db 连接,我正在使用的方法的接口(interface)是:

 * Execute an arbitrary SQL command on the database.
*
* If you need to execute multiple commands in a transaction, use queries()
*
* Parameters:
* - sql (string or query object, required)
* - options (object):
* * values (array): replacements for '?' placeholders in SQL
* (only use if not passing a DatabaseQuery object)
* * onSuccess (function): method to call on successful query
* + receives single argument: results as an array of objects
* * onError (function): method to call on error; defaults to logging
*/


query: function(sql, options)

所以无论如何我向它发送了一些 SQL 和一些选项,其中之一是 onSuccess 回调。

this.$.db.query("SELECT fullName, count(*) FROM user WHERE username=? and password=? GROUP BY username",
{values: [inUser,inPass], onSuccess: enyo.bind(this, this.callBackFunction)});

我真正想要做的是让 SQL 结果数组返回到我的点击处理函数 - clickPopulate,但是作为调用方法,我无法让它工作?

有什么想法吗?

最佳答案

您不能将异步回调返回给原始调用者。

你能做的最接近的事情是这样的(因为我不知道 Enyo apis,我只会使用一些伪的东西)

function clickPopulate() {
db.query('Some SQL here', function(results) {
//This is the code that will be run once the query is complete.
});
}

所以基本上你可以在你的函数中包含一个闭包作为回调。这样它看起来像是原始调用者的一部分,但实际上不是。


如果您真的想要,您可以让它回调原来的函数,并定义一些参数来确定它是否是查询的结果,但这只会让它变得有点丑陋和困惑。

关于Javascript 将 SQL 结果绑定(bind)到一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6636456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com