跟着教程学习async的使用,遇到问题老师竟然跳过了跳过了跳过了!强迫症简直不能忍!

以下就是报错代码,简直就是大家来找茬,

    function fn() {return new Promise( (resolve)=>{setTimeout( ()=>{console.log("hi");resolve("0");},1000);});}var obj = {say: async ()=>{const res = await fn();console.log(`res ${res}`);},run: async ()=>{await fn();console.log(`run`);}}(async function(){await obj.say();await obj.run();})()

最开始报错我以为是匿名函数的原因,将其都修改为了function(),可还是不对,我又将其赋值给f1,但此次并没有报错,结果也成功打印。

    // (async function(){//     await obj.say();//     await obj.run();// })()var f1 = async ()=>{await o1.say();await o1.run();}f1();

发现不是匿名函数的问题,我仔细检查了代码,增加了分号,就通过了编译。

    function fn() {return new Promise( (resolve)=>{setTimeout( ()=>{console.log("hi");resolve("0");},1000);});}var obj = {say: async ()=>{const res = await fn();console.log(`res ${res}`);},run: async ()=>{await fn();console.log(`run`);}}; // 分号在此(async function(){await obj.say();await obj.run();})()

我们都知道JS是可以不写分号由其自动添加的,但JS并不是一行末尾添加的,它的机制很有趣,会进行解析,能够正常被解析的时候才在末尾增加分号,而解析不了的时候就会合并下一条语句。

所以我的代码在它的眼中应该是这样的,这不报错就出鬼了。

    function fn() {return new Promise( (resolve)=>{setTimeout( ()=>{console.log("hi");resolve("0");},1000);});}var obj = {say: async ()=>{const res = await fn();console.log(`res ${res}`);},run: async ()=>{await fn();console.log(`run`);}}(async function(){await obj.say();await obj.run();})();

最后,希望大家都养成语句结尾手动增加分号的好习惯,远离低级错误。

JS报错问题解决 {(intermediate value)(intermediate value)} is not a function相关推荐

  1. ie8 js未指明的错误_DD_belatedPNG IE8 js报错问题解决

    更多查看官网介绍: 各种兼容模式代码示例如下: 像是使用了 Windows Internet Explorer 7 的 Quirks 模式,这与 Windows Internet Explorer 5 ...

  2. Node.js 、Newman安装配置及报错问题解决

    Node.js .Newman安装配置及报错问题解决 Node.js 下载: Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 你可以根据不同平 ...

  3. Eclipse中导入项目后js报错解决方法

    Eclipse中导入项目后js报错的原因与解决方法 在我们将项目导入Eclipse后,配置好各种编译条件.加载好jar包.配置好tomcat后发现项目还是报错,(前提是项目本身并没有错误,而是我们在初 ...

  4. django 使用json.dumps转换queryset的datatime报错问题解决

    django 使用json.dumps转换queryset的datatime报错问题解决 参考文章: (1)django 使用json.dumps转换queryset的datatime报错问题解决 ( ...

  5. python3的urllib2报错问题解决方法

    python3的urllib2报错问题解决方法 参考文章: (1)python3的urllib2报错问题解决方法 (2)https://www.cnblogs.com/marsggbo/p/66229 ...

  6. ie8 js未指明的错误_修复ueditor百度编辑器在IE8下shCore.js报错'undefined'错误的问题...

    ueditor在IE8下点击任意文本框报脚本错误 错误问题: 在IE8下出现脚本错误 'undefined' 为空或不是对象 的问题 出现问题的文件为: 行数:299行 文件路径:ueditor\th ...

  7. Eclipse和MyEclipse使用技巧--解决MyEclipse中的js报错的小方法

    今天,下了个模版,但是导进去的时候发现js会报错.看了下其他都没有错误.而有一个js报错误,请原谅我有点红色强迫症,不能留一点红色 . 错误如下: Syntax error on token &quo ...

  8. web-packwebpack .\src\main.js .\dist\bundle.js 报错

    (1)使用指令 web-pack>webpack .\src\main.js  .\dist\bundle.js  报错 (2).问题分析,wbpack版本太高,指令不一样.我的是v4.14.0 ...

  9. 【js监听报错】页面监听js报错问题

    <html> <head> <script type="text/javascript">// 页面监听js报错问题 οnerrοr=handl ...

最新文章

  1. 理解 Linux 的虚拟内存
  2. java8循环怎么给全局变量累加_JAVA使用for循环会重复调用list.size()吗?
  3. 看到这儿,你就不会再轻易相信自己的眼睛
  4. SegNet网络简析及caffe工程应用
  5. BP神经网络反向传播手动推导
  6. 深入了解crc32算法
  7. 基于Tensorflow实现多层感知机网络MLPs
  8. 【Flink】Flink Container exited with a non-zero exit code 143
  9. 两组树形数据的比对_Python数据分析-可视化“大佬”之Seaborn
  10. 在更新.net 4.5补丁后,VS2012突然不能打开项目,卸载补丁之后解决。
  11. mysql数据库sql注入原理_如何SQL注入的原理和SQL注入的基础
  12. Bash 远程任意代码执行安全漏洞
  13. pink-css标签
  14. Ubuntu 16 永久修改ulimit中的max file open限制
  15. 日期类超详解(c++入门)
  16. pve远程连接 spcie_惠普 SL250s Gen8 服务器编译PVE内核通过禁用RMRR来实现pcie直通
  17. 【PS实例】照片拼图的制作
  18. MapReduce论文中文版--The Google File System
  19. WebSocket connection to ‘wss://xxx.com’ failed: Error in NET::ERR_SSL_OBSOLETE_VERSION
  20. 如何安装pypi下载的包

热门文章

  1. DevTools failed to parse SourceMap 警告解决方法
  2. IDEA去除代码重负导致的波浪黄线
  3. mysql 连接 字符集设置_Mysql 字符集的设置和修改
  4. 顶刊TIP 2022|武汉大学遥感国重团队提出二元变化引导的高光谱遥感多类变化检测网络BCG-Net
  5. Qt+opencv4区域鼠标截图+图像比对(视频采集)
  6. QA350迟来的报告,中毒已深,pk自己的全部家当-----愿大家为我排忧
  7. 安裝SQL2012 出現規則Microsoft .NET應用程式安全性產生警告
  8. hualinux 进阶 vue 4.1:axios跨源错误CORS解决
  9. 咖说 | 为什么马斯克、SEC议员等众多大V都换了“激光眼”头像?
  10. 可以登qq但 网页打不开