美文网首页我爱编程
Node IO 函数编程在Node的应用

Node IO 函数编程在Node的应用

作者: Leon木木森 | 来源:发表于2018-04-12 07:27 被阅读0次

    什么是IO?
    访问网站,输入地址吐出一个IO

    前端通过异步IO可以消除UI堵塞
    假设请求资源A的时间为M,请求资源B的时间为N。那么同步的请求耗时为M+NN,如果采用异步方式占用时间为Max(M,N)
    随着业务的复杂,会引入分布式系统,时间回线性的增加,M+N+... 和Max(M,N···),这会放大同步和异步之间的诧异
    I/O是昂贵的,分布式I/O是更昂贵的
    CPU时钟周期:1/cpu主频
    根据情况选择同步还是异步,没有谁最好;它们是相辅相成的。

    NodeJS适用于IO密集型,不适用CPU密集型

    node虽然是单线程,但是有辅助线程,
    Libuv(需要会C的知识)
    封装了window、Linux操作系统,用V8 node写的一个库。


    image.png

    有几个特殊的API
    1、setTimeout\setInterval 线程池不参与
    2、process.nextTick() 实现类似
    setTimeout(function(){},0);每次调用放在队列中,在下一轮循环中取出
    3、setImmediate();比process.nextTick()优先级低
    4、Node如何实现一个Sleep?
    async function test(){
    console.log("hello");
    await sleep(1000);
    console.log("world!");
    }
    function sleep(ms){
    return new Promise(resolve => setTimeout(resolve,ms))
    }
    test();

    函数式编程在Node中的应用
    1、高阶函数:可以将函数作为输入或者返回值,形成一种后续传递风格的结果接受方式,而非单一的返回值形式。后续传递风格的程序将函数业务重点从返回值传递到回调函数种。
    app.use(function(){//todo})
    var emitter =new events.EventEmitter;
    emitter.on(function(){//`````````.todo})
    2、 偏函数:指定部分参数产生一个新的定制函数的形式就是偏函数。Node中异步编程非常常见,我们通过烧饼变量会很容易造成业务的混乱。underscore,after变量

    相关文章

      网友评论

        本文标题:Node IO 函数编程在Node的应用

        本文链接:https://www.haomeiwen.com/subject/mqmzhftx.html