zoukankan      html  css  js  c++  java
  • Node笔记四

    异步操作
    -Node采用chrome v8 引擎处理javascript脚本
    --v8最大特点就是单线程运行,一次只能运行一个任务
    -Node大量采用异步操作
    --任务不是马上执行,而是插在任务队列的尾部,等前面的任务运行完成后坐在执行
    -提高代码的响应能力
    回调函数设计
    -对于一个函数如果需要定义回调函数
    --回调好函数一定作为参数的最后一个参数出现
    ---function demo1(arg1,arg2,callback){}
    ---function demo2(arg1,callback1,callback2){}
    --回调函数的第一个参数默认接受错误信息,第二个参数才是真正的回调数据(便于外界回去调用的错误情况)
    ---demo1(arg1,arg2,function(error,data){
    if(error) throw error;
    console.log(data);
    });
    --错误优先的回调函数
    ---约定将错误信息作为回调的第一个参数,第一个参数为上一步的错误信息
    ---因为之后的操作大多数都是异步的方式,无法通过try catch捕获异常

    强调错误优先
    -node大多数都是异步的操作方式,无法通过try catch捕获异常
    -错误优先的回调函数
    --第一个参数为上一步的错误信息
    回调函数的问题>相对于传统代码
    -不容易阅读
    -不容易维护
    -不容易调试
    -回调黑洞
    --解决方法:promise等

    演示代码:
    function isEvenOrOdd(number,callback) {
    if (typeof number === 'number') {
    if (number % 2) {
    callback(null,'number is even');
    }else{
    callback(null,'number is odd');
    }
    } else {
    //throw new Error('input not number -- throw');
    callback(new Error('input not number -- callback'));
    }
    }
    isEvenOrOdd(2,(error,data) =>{
    if(error) throw error;
    console.log(data);
    });

    isEvenOrOdd(3,(error,data) =>{
    if(error) throw error;
    console.log(data);
    });

    isEvenOrOdd('myString',(error,data) =>{
    if(error) throw error;
    console.log(data);
    });

    什么是异步?
    -日常生活中
    --打电话
    --发短信
    -程序世界中
    --setTimeout()
    --$.ajax()
    --文件操作
    --Node所有的会发生阻塞的操作都是异步
    -归根结底,所有需要异步的操作都是基于'网络操作'和'磁盘操作'做两个方面的。
    什么是I/O?
    -简单理解就是输入到输出之间的转化过程

  • 相关阅读:
    New version of VS2005 extensions for SharePoint 3.0
    QuickPart : 用户控件包装器 for SharePoint Server 2007
    随想
    发布 SharePoint Server 2007 Starter Page
    如何在SharePoint Server中整合其他应用系统?
    Office SharePoint Server 2007 中文180天评估版到货!
    RMS 1.0 SP2
    SharePoint Server 2007 Web内容管理中的几个关键概念
    如何为已存在的SharePoint站点启用SSL
    Some update information about Office 2007
  • 原文地址:https://www.cnblogs.com/nordon-wang/p/6038778.html
Copyright © 2011-2022 走看看