V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
deathscythe
V2EX  ›  JavaScript

现在 js 有异步流程控制的库嘛?

  •  1
     
  •   deathscythe · 2015-05-19 18:26:32 +08:00 · 3857 次点击
    这是一个创建于 3478 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对es6 中的promise 有兴趣。

    这个是js用的吗?
    https://github.com/kriskowal/q

    18 条回复    2015-05-20 16:08:12 +08:00
    andy12530
        1
    andy12530  
       2015-05-19 18:28:12 +08:00
    promise和流程控制没啥关系。

    流程控制,你需要async.js
    learnshare
        2
    learnshare  
       2015-05-19 18:29:51 +08:00
    promise 有点像改变了回调的写法,并不是流程控制。
    iyangyuan
        3
    iyangyuan  
       2015-05-19 19:01:01 +08:00 via iPhone
    楼主举个例子?
    deathscythe
        4
    deathscythe  
    OP
       2015-05-19 19:07:04 +08:00
    @andy12530 @learnshare promise 处理异步吧。好咯,我标题起得不好~

    @iyangyuan 就是关于如果处理多个 异步时要等待全部 异步完成返回结果再继续下一步操作。
    song0071000
        5
    song0071000  
       2015-05-19 19:12:01 +08:00
    async的 parallel
    符合你的要求
    Phariel
        6
    Phariel  
       2015-05-19 19:38:26 +08:00 via Android
    qgy18
        7
    qgy18  
       2015-05-19 19:48:01 +08:00 via iPhone
    async function myFunction() {
    let result = await somethingThatReturnsAPromise();
    console.log(result); // cool, we have a result
    }

    这是 ES7 支持的 async function,ES6 可以用 generator function 完成类似的事情,例如 promise 结合 Q,可以这么玩:

    var all = Q.async(function* () {
    var src = yield getData();
    var img = yield getImg(src);
    showImg(img);
    });
    qgy18
        8
    qgy18  
       2015-05-19 19:51:21 +08:00 via iPhone
    riophae
        9
    riophae  
       2015-05-19 22:21:50 +08:00
    只要 Promise 相关的都可以
    isayme
        10
    isayme  
       2015-05-19 22:43:59 +08:00
    献上我写的库给各位大神, 符合promise/A+标准, 仅200行代码!
    https://github.com/isayme/then.js
    scarlex
        11
    scarlex  
       2015-05-19 23:20:16 +08:00
    http://liubin.github.io/promises-book/
    这里有本 promise book,看完你就懂了
    ezreal
        12
    ezreal  
       2015-05-19 23:38:20 +08:00
    bluebird
    L3au
        13
    L3au  
       2015-05-19 23:51:35 +08:00
    嗯,async & co是流程控制库,都支持promise的
    kurosagi
        14
    kurosagi  
       2015-05-20 08:11:05 +08:00
    KennyZJ
        15
    KennyZJ  
       2015-05-20 10:31:38 +08:00
    co + thunkify
    tamamaxox
        16
    tamamaxox  
       2015-05-20 10:33:08 +08:00
    bluebird
    deathscythe
        17
    deathscythe  
    OP
       2015-05-20 14:50:40 +08:00
    @qgy18 https://github.com/kriskowal/q 这个用在node.js里的?
    qgy18
        18
    qgy18  
       2015-05-20 16:08:12 +08:00
    @deathscythe Node 和 浏览器,都可以用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.