Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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:自定义回调函数_Javascript_Callback_Nw.js - Fatal编程技术网

JavaScript:自定义回调函数

JavaScript:自定义回调函数,javascript,callback,nw.js,Javascript,Callback,Nw.js,我是新来的js程序,请原谅,如果一些不清楚,但让我知道问题 请先查看我的代码: function catchDataFromDB(db, tableName, callBack) { var sqlStr = 'SELECT * FROM ' + tableName; var sqlData = []; db.transaction(function(t) { // Query out the data t.executeSql(sqlStr, [], func

我是新来的js程序,请原谅,如果一些不清楚,但让我知道问题

请先查看我的代码:

function catchDataFromDB(db, tableName, callBack) {

var sqlStr = 'SELECT * FROM ' + tableName;
var sqlData = [];
db.transaction(function(t) {
        // Query out the data
        t.executeSql(sqlStr, [], function(t, SQLResultSet) {
            var len = SQLResultSet.rows.length,
                row;
            for (var i = 0; i < len; i++) {
                row = SQLResultSet.rows.item(i);
                sqlData.push(row);
            }
            console.log(sqlData);
        });
    },
    function(SQLError) {
        console.warn(SQLError.message);
    });
 return sqlData;
}

但是,当我调用函数doSomething时,如何从函数foo获得返回呢?

回调是一个简单的函数,在某些工作完成时调用,在javascript中可以将其传递到变量中,因此在异步/工作函数中必须调用回调函数(如
回调(结果)
)一旦完成任务

所以你的代码应该是

函数catchDataFromDB(db,tableName,回调){ var sqlStr='SELECT*FROM'+tableName; 数据库事务(功能(t){ //查询出数据 t、 executeSql(sqlStr,[],函数(t,SQLResultSet){ var len=SQLResultSet.rows.length, 一行 对于(变量i=0;i}谢谢您的回答!1.我需要实现回调函数吗?类似函数returnArray(datas){returndatas;};2.如何获取返回数据?如何:var result=catchDataFromDB(db,tableName,returnArray);或var结果;catchDataFromDB(db,tableName,returnArray(t){result=t;});如果你的函数没有做任何异步的事情,那么就不需要回调,你只需要在回调中继续你的正常操作,看看他可能会有帮助,在学习回调之后,我鼓励你学习JavaScript承诺,因为回调不是解决异步代码的空闲解决方案,但在转到Promise之前学习很好很抱歉,从您发送的url来看,这对我来说很困难,您能帮我制作样本吗?我想知道当我调用一个有回调参数的函数时,如何从回调函数中获取返回值?对于JavaScript承诺,我会按照您的鼓励来做。
function doSomething(callback) {
// ...

// Call the callback
callback('stuff', 'goes', 'here');
}

function foo(a, b, c) {
// I'm the callback
alert(a + " " + b + " " + c);
}

doSomething(foo);