当前位置: 首页 > news >正文

jsp 网站连接数据库象山企业门户网站建设

jsp 网站连接数据库,象山企业门户网站建设,如何做登录网站,精准营销通俗来说是什么上篇文章我们讲完了类和对象#xff0c;接下来我们将要说回调函数. 我在第一篇说到nodejs的一个优势是异步IO#xff0c;实际上异步IO直接体现就是使用回调函数#xff0c;当然不是用了回调函数#xff0c;他就一定是异步IO的#xff0c;因为inodejs是一个单线程函数接下来我们将要说回调函数. 我在第一篇说到nodejs的一个优势是异步IO实际上异步IO直接体现就是使用回调函数当然不是用了回调函数他就一定是异步IO的因为inodejs是一个单线程函数主线程在执行的时候只有发生了异步处理文件读写、网络请求、定时任务、读取数据库等js让操作系统相关部件去处理这些请求另一方面它会继续执行后面的代码这才是异步。 回调函数在完成任务后就会被调用很多Node项目使用了大量的回调函数Node 所有 API 都支持回调函数。 例如我们可以一边处理某一个复杂逻辑运算一边执行其他命令在复杂逻辑运算完成后我们将运算结果作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待IO操作。这就大大提高了 Node.js 的性能可以处理大量的并发请求。 回调函数一般作为函数的最后一个参数出现 function fun1(param1, param2, callback) { } function fun2(param, callback1, callback2) { } 阻塞IO代码 代码如下 var fsrequire(fs); //demo.txt文件内容是 hello world var datafs.readFileSync(demo.txt); console.log(data.toString()); console.log(读文件结束); var a 12; console.log(执行其他操作结束);以上代码执行结果如下 hello world 读文件结束 执行其他操作结束 非阻塞IO代码 我们把刚才的代码做个改动 const fs require(fs) //demo.txt文件内容是 hello world fs.readFile(demo.txt, utf8, function(err, data){console.log(data);console.log(读文件结束); }); var a 12; console.log(执行其他操作结束); 以上代码执行结果如下 执行其他操作结束 hello world 读文件结束以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行程序。 第二个实例我们不需要等待文件读取完这样就可以在读取文件时同时执行接下来的代码大大提高了程序的性能。 因此阻塞是按顺序执行的而非阻塞是不需要按顺序的所以如果需要处理回调函数的参数我们就需要写在回调函数内。 异常处理 JS 自身提供的异常捕获和处理机制—try catch只能用于同步执行的代码。以下是一个例子。 try {var b a /0; } catch (err) {console.log(Error: %s, err.message); } 输出结果为 Error: a is not defined可以看到异常会沿着代码执行路径一直顺序执行直到遇到第一个 try 语句时被捕获住。但由于异步函数会打断代码执行路径异步函数执行过程中以及执行之后产生的异常冒泡到执行路径被打断的位置时如果一直没有遇到 try 语句就作为一个全局异常抛出。以下是一个例子。 function async(fn, callback) {// Code execution path breaks here.setTimeout(function () {callback(fn());}, 0); }try {async(null, function (data) {// Do something.}); } catch (err) {console.log(Error: %s, err.message); }-- Console ------------------------------ /home/user/test.js:4callback(fn());^ TypeError: object is not a functionat null._onTimeout (/home/user/test.js:4:13)at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 因为代码执行路径被打断了我们就需要在异常冒泡到断点之前用 try 语句把异常捕获住并通过回调函数传递被捕获的异常。于是我们可以像下边这样改造上边的例子。 function async(fn, callback) {// Code execution path breaks here.setTimeout(function () {try {callback(null, fn());} catch (err) {callback(err);}}, 0); }async(null, function (err, data) {if (err) {console.log(Error: %s, err.message);} else {// Do something.} });-- Console ------------------------------ Error: object is not a function 可以看到异常再次被捕获住了。在 NodeJS 中几乎所有异步 API 都按照以上方式设计回调函数中第一个参数都是 err。因此我们在编写自己的异步函数时也可以按照这种方式来处理异常与 NodeJS 的设计风格保持一致。 有了异常处理方式后我们接着可以想一想一般我们是怎么写代码的。基本上我们的代码都是做一些事情然后调用一个函数然后再做一些事情然后再调用一个函数如此循环。如果我们写的是同步代码只需要在代码入口点写一个 try 语句就能捕获所有冒泡上来的异常示例如下。 function main() {// Do something.syncA();// Do something.syncB();// Do something.syncC(); }try {main(); } catch (err) {// Deal with exception. } 但是如果我们写的是异步代码就只有呵呵了。由于每次异步函数调用都会打断代码执行路径只能通过回调函数来传递异常于是我们就需要在每个回调函数里判断是否有异常发生于是只用三次异步函数调用就会产生下边这种代码。 function main(callback) {// Do something.asyncA(function (err, data) {if (err) {callback(err);} else {// Do somethingasyncB(function (err, data) {if (err) {callback(err);} else {// Do somethingasyncC(function (err, data) {if (err) {callback(err);} else {// Do somethingcallback(null);}});}});}}); }main(function (err) {if (err) {// Deal with exception.} }); 可以看到回调函数已经让代码变得复杂了而异步方式下对异常的处理更加剧了代码的复杂度。如果 NodeJS 的最大卖点最后变成这个样子那就没人愿意用 NodeJS 了。
http://www.pierceye.com/news/161383/

相关文章:

  • 怎么做淘宝客网站网站定位代码
  • 自己给网站做logo卓成建设集团有限公司网站
  • 西宁建设网站软件徐州集团网站建设公司
  • 做网站卖设备找哪家好百度智能云windows系统服务器建站
  • 长沙企业做网站专门查企业信息的网站
  • 比较权威的房产网站百度网盘官网登陆入口
  • 金融商城快捷申请网站模板下载安全电子商务网站设计
  • 公司网站建设重要性天津建设交培训中心网站
  • 成都网站制作东三环论文一区二区三区是什么意思
  • 织梦图片瀑布流网站模板成都大型网站维护公司
  • 企业信息网站wordpress怎么调用m3u8视频
  • 前端怎么接私活做网站中文h5编程工具
  • wordpress模板 站长营销型网站开发
  • 广西南宁市住房和城乡建设局网站网络平台怎么建
  • 徐州提供网站建设报价表手机微网站怎么做
  • 建设汽车行业网站网站建设规划书百度文库
  • 金坛区建设局网站为什么我的网站百度搜不到
  • 高端t恤定制网站google搜索网址
  • 海南省住房和城乡建设厅网站重庆建设工程安全网
  • 免费帮忙做网站如何给网站增加外链
  • 如何建设网站接收数据加油优惠卡app软件开发
  • 改网站js代码网络销售挣钱吗
  • 怎么通过数据库做网站的登录专业外贸网站制作公司
  • 上海网站建设上海黄金线上学编程哪个机构比较好
  • 个人网站能 做淘客吗徐州网站建设工作室
  • 网站公司备案通知百度seo文章
  • 做网站专业服务新网域名官网
  • 网站dns多久刷新广州网站建设开发
  • 标准网站有哪些西安市沣东新城建设局网站
  • 对php网站开发技术课程总结广州网站策划公司