回调函数解释

   “回调函数”被大家看到的机会越来越多,比如在微信公众号、微信小程序的开发中,经常要跟回调函数打交道。那么回调函数究竟怎样解释能清楚些呢?

         在编写程序的时候,我们往往要跟相关系统的API打交道,比如你要调用微信的API进行微信支付,这时候是你调用API。如果将关系反过来,我们自己编写一个函数,让微信服务器系统调用这个你编写的函数,就可以称之为回调了,这个被微信服务器系统调用的你所编写函数就是回调函数。

         来看下面的JavaScript回调实例

function doSomthing(messsage,callback){
    alert('提醒消息:'+message);
    callback();//alart执行后,执行callback()
}

function callbackExample(){
    alert('提醒完毕后会执行我');
}

doSomething('实际的回调消息提醒',callbackExample);

         我们在调用doSomething后,先会收到 “提醒消息:实际的回调消息提醒” 然后会收到 "提醒完毕后执行我"。这里不需要再调用了。在doSomething执行后就会自动执行了。
         上面可以看出当该回调函数被传过去的那个事件触发的时候,回调函数将被执行。使用回调函数最大的好处是程序变成异步了。


`sqlite3_exec`函数是SQLite数据库API中的一个函数,用于在C语言环境中执行SQL语句,并通过回调机制处理查询结果或错误。它的回调函数通常在执行操作过程中被调用,提供了一种非阻塞的方式处理查询结果,避免了主线程被长时间占用。 回调函数的原型通常像这样: ```c void callback(void *data, int argc, char **argv, char **azColName); ``` 参数解释: - `data`: 用户自定义的数据,由`sqlite3_exec`函数在开始执行前传入,后续回调中作为上下文使用。 - `argc`: 可能返回的列数,对于成功的SELECT查询来说,这是一个大于0的整数。 - `argv`: 结果集的列名数组,对应于`argc`,每个元素都是指向SQL文本字符串的指针。 - `azColName`: 类似于`argv`,但这里是列名称的数组。 使用`sqlite3_exec`及其回调函数的基本步骤如下: 1. 创建一个回调函数,比如处理查询结果或错误的函数,接收上述参数并进行相应的操作。 2. 打开一个SQLite连接(`sqlite3_open`)并初始化一个准备好的SQL字符串。 3. 调用`sqlite3_exec`,将SQL字符串、用户数据、回调函数回调函数的上下文传递进去。 4. `sqlite3_exec`会立即返回,而不会等待查询完成,直到有新的数据可用才会通过回调函数通知你。 5. 当回调函数被触发时,你可以检查`argc`和`argv`数组,处理每一列的结果,并在完成后关闭数据库资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值