zoukankan      html  css  js  c++  java
  • CO函数库

    CO函数库

    用于 Generator 函数的自动执行,co函数返回一个promise对象

    Generator 函数:

    协程的概念:A执行— A暂停,执行权给B--- B交回执行权--- A恢复执行

    Generator 函数是协程在 ES6 的实现,最大特点就是用yield命令 可以交出函数的执行权(即暂停执行),让异步代码用同步的方法写出。

             1. 在需要暂停的地方加yield命令

             2. 一般Generator函数的函数名之前要加星号以示区别

             3. 调用 Generator 函数,会返回一个内部指针(即遍历器 )

             4. Generator 函数内部还可以部署(try..catch…)错误处理代码,捕获函数体外抛出(throw)的错误。

    Generator函数 代码示例:

    var fetch = require('node-fetch');
    //一个Generator函数
    function* gen(){
      var url = 'https://api.github.com/users/github';
      var result = yield fetch(url);
      console.log(result.bio);
    }
    //执行Generator函数
    var g = gen();  
    var result = g.next();  //恢复执行后的结果
     
    result.value.then(function(data){ //promise 回调
      return data.json();
    }).then(function(data){
      g.next(data);
    });
    var result = yield fetch(url);

    这句是不是很像同步代码,除了加上了 yield 命令。

    上面代码中,Generator 函数封装了一个异步操作,该操作先读取一个远程接口,然后从 JSON 格式的数据解析信息。

    Co函数就是做了这部分工作,让Generator 函数自动执行:

    使用方法非常简单:Generator 函数只要传入 co 函数,就会自动执行

    var co = require('co');
    
    co(gen).then(function (){ //co函数返回一个Promise对象,以此来添加回调
    
      console.log('Generator 函数执行完成');
    
    })

    Node调试问题记录:

    EADDRINUSE  –>  E ADDR IN USE 是指端口已被占用

    Error: EPERM: operation not permitted  ->  权限问题,需要使用管理员权限

  • 相关阅读:
    DOS 错误代码
    WINRAR 建立批处理备份文件
    clear.bat
    continue break
    播放dll中的wav声音
    BAT删除自身del 0
    bat 延时10秒自动关闭自己bat
    产生随机数
    RemoveDirZ.bat
    DELPHI中取整数的方法
  • 原文地址:https://www.cnblogs.com/jlliu/p/8288798.html
Copyright © 2011-2022 走看看