V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Flasky
V2EX  ›  问与答

请问 ES6 的 Promise 怎样可以让它同步顺序执行?

  •  
  •   Flasky · 2019-02-13 00:25:12 +08:00 · 6987 次点击
    这是一个创建于 2117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码:
    现在是数据还没进 then 里面处理就直接 export 输出了,页面都渲染完了才有数据过来,怎样改可以让它处理完数据了才 export 输出?

    10 条回复    2019-02-13 08:31:26 +08:00
    Lax
        1
    Lax  
       2019-02-13 00:45:23 +08:00
    我一般直接 export 一个 promise 出去
    dixeran
        2
    dixeran  
       2019-02-13 00:48:18 +08:00 via Android
    据我所知 js 里没法异步导出一个对象。
    所以 a)调用模块的时候等待一会
    b)或者导出 Promise,返回 Auth 对象
    ashong
        3
    ashong  
       2019-02-13 00:53:10 +08:00 via iPhone
    GetAuthorized 传个 cb 进去 21 行后回调 export
    hcwhan
        4
    hcwhan  
       2019-02-13 00:54:42 +08:00 via iPhone
    async await
    Flasky
        5
    Flasky  
    OP
       2019-02-13 00:54:48 +08:00 via Android
    @dixeran @Lax 那我试试 export 一个 promise
    throns
        6
    throns  
       2019-02-13 01:38:23 +08:00 via iPhone
    写这种代码纯粹是给自己挖坑,如果需要验证才能访问页面,应该在组件 didMount 以后判断是否处于已验证状态,如果不是则将路由 replace 到登录界面,登录状态最好全局管理,将其放到 redux 中或者用新的 Context API。
    wszgrcy
        7
    wszgrcy  
       2019-02-13 07:02:50 +08:00 via Android
    槽点太多,无法吐槽。简而言之一句话导出函数,return promise
    des
        8
    des  
       2019-02-13 08:01:33 +08:00
    DOLLOR
        9
    DOLLOR  
       2019-02-13 08:28:00 +08:00
    又是拿同步的思维写异步方法……
    而且你的 module 不应该 export 一个 status 形式的变量,而应该 export 一个 function,比如直接把 GetAuthorized export 出去
    learnshare
        10
    learnshare  
       2019-02-13 08:31:26 +08:00
    你并未理解异步和同步
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2829 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.