Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将SQL结果绑定到函数_Javascript_Webos_Enyo - Fatal编程技术网

Javascript将SQL结果绑定到函数

Javascript将SQL结果绑定到函数,javascript,webos,enyo,Javascript,Webos,Enyo,全部, 我正在与WebOS enyo合作,但有一个非常重要的时刻 基本上,它的enyo与我的问题无关,但是 我有一个方法: clickPopulate: function(){ // Do some SQL }; 我正在使用一个数据库类来处理SQL lite Db连接,我正在使用的方法的接口是: * Execute an arbitrary SQL command on the database. * * If you need to execute multiple co

全部,

我正在与WebOS enyo合作,但有一个非常重要的时刻

基本上,它的enyo与我的问题无关,但是

我有一个方法:

clickPopulate: function(){

     // Do some SQL

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

 * 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结果数组返回到我的click handler函数-clickPopulate,但是作为调用方法,我无法让它工作


有什么想法吗?

您不能让异步回调返回到原始调用者

您可以做的最接近的事情是这样的(因为我不知道EnyoAPI,所以我将使用一些伪“ish”的东西)

因此,基本上可以在函数中包含一个闭包作为回调。这样看来,它似乎是原始调用方的一部分,但实际上不是



如果你真的想,你可以让它调用原来的函数,并定义一些参数来确定它是否是查询的结果,但这会让它有点难看和混乱。

谢谢Jani,这就是我所需要的-异步调用的问题是enyo只调用一次设置函数,当我离开它时,就是这样。。。你在上面建议的选择很有效,谢谢。
function clickPopulate() {
    db.query('Some SQL here', function(results) {
        //This is the code that will be run once the query is complete.
    });
}