一个经典案例
// 回调函数
const greet = (name, callback) => {
console.log(`Hello ${name}`)
callback(name)
}
greet('John', (name) => {
console.log(`your name is ${name}`)
})
// 对象中的回调函数
const Obj = {
a:1,
b:2,
useAB: function(callback){
const a = this.a
const b = this.b
console.log(`a: ${a}, b: ${b}`)
callback(a, b)
}
}
Obj.useAB((a, b) => {
console.log(`a+b: ${a + b}`)
})
JavaScript的回调函数有隐性封装,很不直观
以对象中的回调函数为例,useAB
的输入参数是一个回调函数,且该回调函数接收两个输入参数,两个输入参数自动和对象的a
、b
值对等。使用者可自行编辑对a
、b
的操作逻辑
事件监听回调
ipcMain.handle('message:userQuestion', async (event, userQuestion) => {
})
以上是更复杂的回调
- 第一个参数
message:userQuestion
表示监听的事件名称 - 第二个参数是自定义的回调函数,回调函数的第一个输入参数
event
会被自动和发起传输事件的对象本身绑定。第二个参数userQuestion
被自动事件传输的消息内容绑定。