首页 > 其他分享 >回调方式和异步方式的优缺点

回调方式和异步方式的优缺点

时间:2024-10-21 13:51:12浏览次数:7  
标签:异步 调用 方式 IC卡 优缺点 rfidreader 密钥

IC卡读卡器web插件目前提供2种接口调用方式,一种直接调用,使用回调函数返回数据。另外一种采用异步await调用,直接返回数据。 这两种方式都有自己的优势,回调方式适合自动寻卡或者自动读取IC卡数据,刷卡自动就能返回数据,web页面只需要等待数据即可。
异步调用方式更适合一系列的流程,整个流程与代码保持一致,可读性好,思路清晰。
需要注意的是,回调方式引用的js是YOWOCloudRFIDReader.js,为异步await方式引用的js是YOWOCloudRFIDReaderAsync.js。
在这里插入图片描述

一、回调方式:

采用回调方式,首先需要声明回调函数rfidreader.onResult,代码如下所示:

rfidreader.onResult(function(resultdata)//回调函数声明
{
switch(resultdata.FunctionID)//根据FunctionID来判断api接口
{ case 14:
//返回版本号码,初始化时会自动返回 break;
case 5:
...
break;
}
}
);

然后就可以在网页种使用js调用api接口了, 如下所示:

rfidreader.KeyMode=0;//密钥认证类型为A密钥
rfidreader.KeyStringMode=0;//密钥字符串为16进制字符串
rfidreader.KeyString="FFFFFFFFFFFF";//默认密钥
rfidreader.Repeat=0;//不重复执行接口
rfidreader.M1ReadBlock(BlockID, 0);//调用接口,读IC卡数据块

这样调用读块接口后,读到的数据就到回调函数了,在回调函数里面处理返回的数据。

二、异步调用方式:

采用异步调用方式,最大的好处就是不破坏程序结构,按顺序往下执行。例如可以先读IC卡,然后写IC卡,整个代码就按照这个流程走下去。

rfidreader.KeyMode=0;//密钥认证类型为A密钥
rfidreader.KeyStringMode=0;//密钥字符串为16进制字符串
rfidreader.KeyString="FFFFFFFFFFFF";//默认密钥
rfidreader.Repeat=0;//不重复执行接口
let result = await rfidreader.M1ReadBlock(BlockID, 0);//采用异步方式读数据块
if(result.Result>0)
{
let result2 = await rfidreader.M1WriteBlock(BlockID, Data,0);//读成功后,可以直接写
}

异步调用方式,可以实现多个流程按照顺序语句执行,对于程序结构有很多益处。在实际项目种选择那种调用方式,还是取决于项目的需求,选择一个适合的就行。

转自:IC卡读卡器web插件的调用方式

标签:异步,调用,方式,IC卡,优缺点,rfidreader,密钥
From: https://blog.csdn.net/Coodor/article/details/143108602

相关文章

  • java线程异步方法
    异步的八种实现方式:线程异步Thread/RunnableFuture+Callable异步框架CompletableFutureSpring注解@AsyncSpringApplicationEvent事件第三方异步框架,比如Hutool的ThreadUtilGuava异步消息队列1、线程异步publicclassThreadTestimplementsRunnable{......
  • 在K8S中,有家拥有分布式系统的跨国公司,拥有大量数据中心,虚拟机和许多从事各种任务的员
    对于拥有分布式系统的跨国公司,且该公司拥有大量数据中心、虚拟机以及众多从事各种任务的员工,采用Kubernetes(K8s)来管理所有任务是一种高效且灵活的方式。以下是一些建议,说明该公司如何以与Kubernetes一致的方式管理所有任务:1.利用Kubernetes的容器化特性容器化应用程序:将公司......
  • linux系统有什么优缺点
    Linux系统的优缺点包括:1、高度可定制;2、安全性高;3、硬件兼容性强;4、学习曲线陡峭;5、软件生态相对较弱。Linux系统以其开源和自由的特点吸引了大量的开发者和企业用户。它提供了强大的安全性和硬件兼容性,但同时,新手可能会觉得学习曲线陡峭。此外,与Windows和macOS相比,它的软件生态......
  • 多线程交替顺序打印ABC的多种方式
    面试题:有3个独立的线程,一个只会输出A,一个只会输出B,一个只会输出C,在三个线程启动的情况下,请用合理的方式让他们按顺序打印ABC。使用lock,Conditionimportjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.lock......
  • VMware Fusion 13.6.1 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
    VMwareFusion13.6.1OEMBIOS2.7-在macOS中运行Windows虚拟机的最佳方式VMwareFusion13原版App中集成OEMBIOS请访问原文链接:https://sysin.org/blog/vmware-fusion-13-oem/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2024-10-11,版本13.6.1例......
  • 利士策分享,大学生赚钱方式多种多样
    利士策分享,大学生赚钱方式多种多样在当今社会,大学生群体也同样面临着越来越多的经济压力和挑战了。然而,一些大学生却试图通过售卖隐晦视频等不正当手段来谋取利益,这种行为不仅违法,也严重损害了大学生的形象和声誉。因此,我们有必要深入探讨大学生正规赚钱的方式,引导他们以......
  • 第38篇 net8接口调试方式
    .net提供了内置的接口调试方式1.新建.netcorewebapi控制台应用程序2.封装好jwt验证机制token令牌验证机制///<summary>///登录///</summary>///<paramname="request"></param>///<returns></returns>///<exceptioncref="N......
  • 线程常用的几种使用方式?
    在Java中,线程可以通过几种不同的方式进行创建和使用。以下是常用的几种方式:1.继承Thread类这种方式通过创建一个子类,继承自Thread类,并重写其run()方法来定义线程的行为。示例代码:classMyThreadextendsThread{@Overridepublicvoidrun(){......
  • 线程创建的几种方式,你都知道吗?
    使用继承Thread类的方法来创建线程,分别表示兔子和乌龟的比赛。classTurtleextendsThread{@Overridepublicvoidrun(){System.out.println("乌龟开始赛跑!");for(inti=1;i<=10;i++){System.out.println("乌龟跑了......
  • C系统编程通信方式——共享内存
        共享内存,标准IPC之一,也是进程间通信最快的一种方式。1.概念    所有的标准IPC都有一个内部ID作为唯一标识。内部ID的获取通过外部key,key的类型是key_t。key的获取方法有在头文件中定义所有key和通过ftok函数获取一个key。key_tftok(constchar*pathna......