ES6 VUE3+Typescript Generate完美解决异步操作同步化

ES6 VUE3+Typescript Generate完美解决异步操作同步化

基本理解

菜鸟文档里说明的比较清晰啦
Generator 有两个区分于普通函数的部分:
一是在 function 后面,函数名之前有个 * ;
函数内部有 yield 表达式。

var Judge = function* () {
      while (true) {
        console.log('is True');
        yield;
        console.log('is False');
        yield;
      }
    };
    var JudgeGen = Judge();
    JudgeGen.next(); //is True
    JudgeGen.next(); //is False

generator 函数于正常函数调用一样,都是方法名后面跟括号。
但是不同的是generator 函数不会立即执行,而是需要跟next()才能执行.每一次执行都会在yeild 停止。也可以使用return 人为停止,比较基本的理念建议大家看看官方文档,但是异步操作同步化真的非常好用。

异步操作同步化

相信使用最多的应该是异步操作同步化
使用generate 完美解决这个问题,不需要用async await 写一些冗余代码
直接附上代码可以看到比较清晰

function* facePhoto(): Generator {
      console.log('start');
      yield blockOneSecondFun();
      console.log('after block one second');
      let response: any = yield getLoginTypeFun();
      console.log('getLoginTypeFun=');
      console.log(response);
      if (!response.captcha) {
        console.log('captcha is false');
        let captcha = yield captchaFun();
      } else {
        let message = yield messageFun();
        console.log(message);
      }
      yield console.log('ending');
    }
    var faceGen = facePhoto();
    faceGen.next();
    function blockOneSecondFun() {
      setTimeout(() => {
        faceGen.next();
      }, 1000);
    }
    function getLoginTypeFun() {
      getVerifyFlag().then((response: any) => {
        faceGen.next(response);
      });
    }
    function captchaFun() {
      setTimeout(() => {
        //提前终止流程
        //可以看到done 已经为true
        console.log(faceGen.return('captcha finished'));
      }, 1000);
    }
    function messageFun() {
      faceGen.next('message login start');
    }

以下是控制台输出
对应代码控制台输出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3可以使用TypeScript来增强其开发过程和代码质量。使用TypeScript可以为Vue组件提供类型检查和提示,增加代码的可读性和可维护性。为了使用TypeScript,可以使用vue-class-component库来加强Vue组件,使得脚本可以支持TypeScript装饰器。 TypeScriptJavaScript的一个超集,它为JavaScript提供了类型系统和对ES6的支持。使用TypeScript可以在开发过程中捕获潜在的错误,并提供更好的代码提示和自动补全功能。在最近发布的Vue3正式版本中,Vue3的源码就是用TypeScript编写的,这也是Vue3升级的亮点之一。在React和Vue社区中,越来越多的人开始使用TypeScript来开发应用程序。 要在Vue3中正确使用TypeScript,可以通过安装vue-cli,并使用vue create命令创建一个新的项目,并选择Vue3预设。这将帮助你设置好Vue3和TypeScript的开发环境。 总结起来,Vue3可以使用TypeScript来提供更好的代码质量和开发体验。你可以使用vue-class-component库来增强Vue组件的TypeScript支持,并使用vue-cli来快速设置Vue3和TypeScript的开发环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3.0+TS 项目上手教程](https://blog.csdn.net/Ed7zgeE9X/article/details/109039793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值