首先需要电子版本大于v1.8.4,节点7/8已经支持async / await
cmd里面输入electron -v可以查看
具体用法:
async function test()
{
/ * var response = await new Promise((resolve,reject)=> //这种是简略写法,本人认为最好不要这样写
{
/ *
例如,这里放入异步函数比如 ipc.on
发送多个参数,在可以发送的时候组成数组或对象或者在ipc.on里面组成
* /
ipc.on('test',(event,arg)=>
{
//返回数据,err返回reject
resolve(arg);
})
})* /
//获取第一个数据
var response = await get_info(); //这样看起来更清楚
await send_info(); //这里没有需要返回的数据了,如果有可以继续
}
function get_info()
{
return new Promise((resolve,reject)=>
{
/ *
这里放入异步函数,例如//比如ipc.on返回多个参数,在可以发送的时候组成
数组或对象或者在ipc.on里面组成
* /
ipc.on('test',(event,arg)=>
{
//resolve数据,reject返回ERR,
resolve(arg);
})
})
}
function send_info(response)
{
return new Promise((resolve,reject)=>
{
ipc.on('TEST1',(event,arg)=>
{
//在这里可以做逻辑处理,这样就将2个异步函数的数据组合在一起了,然后ipc.send
ipc.send('TEST2',arg,response);
})
})
}
//这里调用就可以,不需要管调用顺序,当接受异步,自动调用
test();