2
我是js程序的新手,请原谅,如果有些不明确,但让我知道问题。JavaScript:自定义回调函数
请第一次看到我的代码:
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;
}
此功能用于从的WebSQL获取数据,我想它返回SQLDATA对我来说(这是一个数组)。问题是没有完成从WebSql获取数据,当我调用函数来获取返回值,所以我得到了零。我认为callBack函数对于获取正确的数据会很有用,但我不知道如何去做。感谢您的任何帮助。
附加: 我找到了一个方法,从this page,如下面的代码:
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);
但如何当我调用函数DoSomething的会从函数foo的回报?
T回答! 1.我是否需要实现回调函数?像函数returnArray(datas){返回数据; }; 2.如何获取回报数据?如何:var result = catchDataFromDB(db,tableName,returnArray);或var结果; catchDataFromDB(db,tableName,returnArray(t)){ result = t; }); – Raniys
如果你的函数没有做任何异步,不需要进行回调,你只需在你的回调中继续正常的操作就可以了,看看他可能会有所帮助http://www.tutorialspoint.com/nodejs/nodejs_callbacks_concept.htm , – Bek
在学习回调之后,我鼓励你学习JavaScript Promises,因为回调不是空闲的解决异步代码的解决方案,但在转移到承诺之前很好学习 – Bek