问答

使用 Generator 函数 怎么友好地控制函数运行次数

作者:admin 2021-04-30 我要评论

let addTimes = 0 // 控制函数运行次数const fs = require('fs')import { Dirent } from "fs";function fsReadDir(dir: string): PromiseDirent[] { return new ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
let addTimes = 0 // 控制函数运行次数

const fs = require('fs')
import { Dirent } from "fs";

function fsReadDir(dir: string): Promise<Dirent[]> {
  return new Promise((resolve, reject) => {
    fs.readdir(dir, { withFileTypes: true }, (err: any, files: Dirent[]) => {
      if (err) {
        reject(err);
      }
      resolve(files);
    });
  });
}

function * gen() {
  let p:Dirent[]  =  fsReadDir(abspath);
      paths.sort(File.compareFiles);
      let len:number = paths.length
      while (len--){
        const abspath = path.join(dirPath,paths[len].name);
        if(paths[len].isFile()){
         // dosomthing
          addTimes++;
        }
        else if (paths[len].isDirectory()){
          let path2s: Dirent[] =  fsReadDir(abspath);
          let len2:number = path2s.length
          while (len2--) {
            const abspath = path.join(paths[len].name,path2s[len].name);
            if(paths[len].isFile()){
                     // dosomthing
             addTimes++;
            }
          }
        }
        else {
          paths.splice(len,1)
        }
      }

gen 函数中

  1. fsReadDir 异步要进行处理
  2. 是我要以 addTimes 的数量做一个限制运行 当 addTimes 到 30 后 暂停运行这个函数 并应该将 addTimes 进行清零,而当某个操作再次触发这个操作时,以上次暂停的运行上下文环境运行,当所有的文件被操作完后这个函数执行完。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 使用 Generator 函数 怎么友好地控制函

    使用 Generator 函数 怎么友好地控制函

  • antd 组件 rollup 二次封装 中文显示问

    antd 组件 rollup 二次封装 中文显示问

  • 疑问 ! 关于逻辑或

    疑问 ! 关于逻辑或

  • browserify 不认识不带 (e) 的 catch

    browserify 不认识不带 (e) 的 catch

腾讯云代理商
海外云服务器