分享es6 的精炼co
发布于 5 年前 作者 fangtang 1982 次浏览 来自 问答

co代码贴过来居然保存不了,只能图片了github:qingdie-co


var co = require('utils/co.js');

co(function* (cb) {

  var user = yield getUser('你好!', cb);

  console.log(user);

  var user1 = yield getUser1('棒棒哒!');

  console.log(user1);


  var ret = yield co(function (cba) {

      getUser('棒棒哒!', cba('user'));

      getUser('你好!', cba('user1'));

  })(2);

  console.log(ret);

});


5 回复

楼主使用co.js不报错吗?我这里使用co.js,开发者工具报:regeneratorRuntime is not defined;错误。

else if (co.isAsyncFunction(genFunc)) {

        genFunc();

    }

后面的代码贴上来发布都不行

是想说生成器函数吧,太乱了你

function co(genFunc, cb) {

    if (co.isGenerator(genFunc)) {

        genFunc = genFunc(next);

        next();

    } else if (co.isGeneratorObj(genFunc)) {

        next();

    }

    else if (co.isFunction(genFunc)) {

        return function (num) {

            return new Promise(function (res) {

                var data = {};

                var cbnum = 0;

                genFunc(function (key) {

                    return num == 1 ? res(key) : function (args) {

                        data[key] = args;

                        ++cbnum == num && res(data);

                    }

                });

            });

        }

    }

回到顶部