推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
daijinming

js 也可以支持 await 了吗,求教前端

  •  
  •   daijinming · Sep 16, 2019 · 10137 views
    This topic created in 2616 days ago, the information mentioned may be changed or developed.

    await 我还是第一次在前端代码中看到 await 关键字 ,前端大虾们讲讲

    42 replies  •  2019-10-26 11:00:48 +08:00
    zy445566
    zy445566
    Sep 16, 2019
    1
    早就支持了,谁用谁爽谁知道
    Sniper416
    Sniper416
    Sep 16, 2019
    3
    是的
    murmur
    murmur
    Sep 16, 2019
    4
    这个 node 都要 8 以上才能用,浏览器肯定是要 babel 的
    jchencode
    jchencode
    Sep 16, 2019
    5
    这种东西百度一下不好吗?
    daijinming
    daijinming
    OP
    Sep 16, 2019
    6
    @murmur 也就是说直接在浏览器中运行还是不行的是吗
    banxi1988
    banxi1988
    Sep 16, 2019
    7
    想要 await,又想要兼容性 推荐使用 TypeScript
    [Why TypeScript] (3) 有甜度的 TS 之 async/await,数组及对象解构
    https://www.bilibili.com/video/av67096409/
    zhwithsweet
    zhwithsweet
    Sep 16, 2019
    8
    @daijinming #6 Chrome 可以
    randyo
    randyo
    Sep 16, 2019 via Android
    9
    @daijinming 最新版的浏览器可以用,如果你不考虑兼容性的话😂
    shakaraka
    shakaraka
    Sep 16, 2019
    10
    ```
    let fetchData = async function(){
    console.log('start')
    await new Promise(resolve => setTimeout(() => resolve(), 2000))
    console.log('end')
    }

    fetchData()
    ```


    为什么不行?不是已经支持很久了么,难道我 out 了?
    shakaraka
    shakaraka
    Sep 16, 2019
    11
    https://caniuse.com/#search=async

    几百年前就支持了
    Phariel
    Phariel
    Sep 16, 2019 via iPhone
    12
    TS 或者 Babel 做个兼容性转译吧
    15651980765
    15651980765
    Sep 16, 2019
    13
    ES7 支持了 用起来比回调爽是真的谁用谁知道
    ochatokori
    ochatokori
    Sep 16, 2019 via Android
    14
    chrome 早就可以了 现在连 class 都支持,碉堡了
    realkenshinji
    realkenshinji
    Sep 16, 2019 via iPhone
    15
    @murmur Node 从 7.6 开始支持的好么
    yinjy
    yinjy
    Sep 16, 2019
    16
    看了眼发帖时间
    Clarke
    Clarke
    Sep 16, 2019 via Android❤️1
    17
    天翼 3G 太快了!
    xrr2016
    xrr2016
    Sep 16, 2019
    18
    你是 GG 还是 MM ?
    moxiaonai
    moxiaonai
    Sep 16, 2019 via Android
    19
    49 年入国军
    jinliming2
    jinliming2
    Sep 16, 2019 via iPhone
    20
    @murmur
    @daijinming
    浏览器也支持好几年了,Chrome 55 开始支持的现在已经 Chrome 75 了。
    甚至浏览器都支持 # 开头的 class private fields 了,这个连 TypeScript 都还不支持,导致在 VSCode 里还报错……
    zael
    zael
    Sep 16, 2019 via iPhone
    21
    @murmur chrome firefox 不用转也可以用
    murmur
    murmur
    Sep 16, 2019
    22
    @jinliming2
    @tomoya92
    那就不上 babel 直接用么 看到时候出了兼容问题谁负责 反正 caniuse 上国内的数据是 79.34 的支持率
    sunjourney
    sunjourney
    Sep 16, 2019
    23
    什么,大清亡了!
    star7th
    star7th
    Sep 16, 2019
    24
    真的不是几年前的帖子?居然还有人问这个问题
    no1xsyzy
    no1xsyzy
    Sep 16, 2019
    25
    不用 Babel 就好像在说:
    反正自己的用户不足百人, (1-91.13%=) 8.87% 的用户不能用也不过一双手数得过来……

    除了 Electron 其他都上 Typescript target: es5 就行了
    babel 转又不是你手写……
    cyrbuzz
    cyrbuzz
    PRO
    Sep 16, 2019
    26
    正好有个在写的前端项目,前后端通讯用的异步库,回调`.then()` 和 `await` 两种写法都有(因为是一步步来的...刚开始的教程上只有.then 的异步,后来看了看 Js 异步的资料发现可以用 `await`)。

    还没完全写完,可以看看ಠᴗಠ。

    https://github.com/HuberTRoy/vue-shiyanlou
    kangu
    kangu
    Sep 16, 2019
    27
    谁用谁爽的,都应该没真实掉过坑的,await 写起来舒服,用得多了,光定位 error 估计都要命
    ugu
    ugu
    Sep 16, 2019
    28
    中国申奥成功了
    sagaxu
    sagaxu
    Sep 16, 2019 via Android
    29
    @murmur
    @no1xsyzy 内部项目随便玩,我有个项目只支持最新版和次新版 chrome/firefox,其它版本都禁止使用。
    jinliming2
    jinliming2
    Sep 17, 2019 via iPhone❤️1
    30
    现在用 IE11 日常正常上网都感觉有点阻力了,看 caniuse 最晚支持 await 的浏览器都是 2017 年 1 月就支持了,要是还使用 2 年前的浏览器并且彻底隔绝所有升级更新的,那么肯定已经不是正常用户了(网络联通状态下,几个月,撑死一年不更新都很难了,光自动更新都能给你更新好几轮)。
    如果做的是大众型网站,肯定是不用考虑这些非正常终端的,因为这些终端设备肯定不是设计用来访问大众网站的。这些终端通常是办公型设备,上班摸鱼都是不允许的。或者是定制的设备比如 ATM 之类,更不可能正常使用的。
    而如果做的网站是面向 2 年前系统的,那么肯定是要单独定制的。

    对于 2 年前的浏览器还做专门兼容,你想兼容它们一辈子吗?为啥不针对 IE5 IE6 做兼容嘞?毕竟还有很多怀旧的人去装 win xp win 98,所以真实统计数据这些浏览器用户不会是 0。只不过真的有必要吗?
    网传某国军队内部还在用 win 98,如果哪天要求你为他们定制一个系统,你那还真是有必要兼容的……

    babel 只不过是现代版本的 jQuery 罢了,让本应该升级的用户有理由停留在旧版本,反正有人帮着做兼容,只不过是拖慢整个互联网发展的进程罢了。不然为啥国外 HTML5 取代 Flash 的速度比国内快那么多,就是 Chrome + FireFox 带着发展的啊!
    murmur
    murmur
    Sep 17, 2019
    31
    @jinliming2 能不能找一个公众网站直接用 await 不 babel 的让我见识一下,规模不用大,a 站这种规模就可以
    w292614191
    w292614191
    Sep 17, 2019
    32
    这个东西不是个语法糖之类的吗?
    就是在里面的回调里面调用另一个函数。

    你写两个 ajax 试试,还不是要在 ajax 的 success 里面 resolve();
    jydeng
    jydeng
    Sep 17, 2019
    33
    要用 babel 转义,为了不加班修兼容性。
    dbpe
    dbpe
    Sep 17, 2019
    34
    什么 java8 发布了?
    Curtion
    Curtion
    Sep 17, 2019
    35
    是语法糖,做的就是 co 库的事情
    chaliely
    chaliely
    Sep 17, 2019
    36
    是的支持,await,必须要放在 async 函数里面
    12tall
    12tall
    Sep 17, 2019
    37
    es2017 的特性吧,但是主流不还是 es2015 么
    zephyru
    zephyru
    Sep 17, 2019
    38
    @murmur 我不是想抬杠..不过 github 好像没做兼容直接在用 await....当然你觉得不算公众网站那就当我没说..
    murmur
    murmur
    Sep 17, 2019
    39
    @zephyru github 在 chrome 下的确使用了 es6 语法,但是在 IE 下会自动加载另外一套代码保证基本的操作正常
    no1xsyzy
    no1xsyzy
    Sep 17, 2019
    40
    @zephyru 论 Github 的 PE,是我见过并能想象的天花板。
    NoScript 的日子里(有类 Spectre 的 demo 还没修,而我还用着 iu 的日子里),只有 Github,我根本没有发现我没开 JS 运行权限。
    导致我有种拿网景浏览器都能正常使用 Github 的感觉。
    flowfire
    flowfire
    Oct 26, 2019
    42
    chrome 从 55 版本就支持了
    Firefox 从 52 版本就支持了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1981 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 12:25 · PVG 20:25 · LAX 04:25 · JFK 07:25
    ♥ Do have faith in what you're doing.