240 发简信
IP属地:广东
  • EmbeddedValueResolverAware源码分析

    EmbeddedValueResolverAware EmbeddedValueResolverAware[#embeddedvalueresolveraware]一、基本信...

  • 加instance主要是因为默认的上下文this指向的是window,不是对象实例,访问不到属性

    一个generator自动执行器

    一个generator自动执行器 最近看 redux-saga的源代码, 作者写的yield执行器代码非常不错,详细的分析一下 支持异常处理 支持thunk 支持promos...

  • 你这种写法要是能加上instance和apply就可以支持 对象A实例.doSomething()这种调用了,doSomething是一个Generator函数

    一个generator自动执行器

    一个generator自动执行器 最近看 redux-saga的源代码, 作者写的yield执行器代码非常不错,详细的分析一下 支持异常处理 支持thunk 支持promos...

  • Generator.run = function(instance, generatorFUN, ...initialValue) {
    return new Promise((resolve, reject) => {
    const generator = generatorFUN.apply(instance, initialValue);
    iterate(generator);

    function iterate(generator) {
    step();
    function step(arg, isError) {
    const { value: express, done } = isError ? generator.throw(arg) : generator.next(arg);
    logger.debug('[Generator][run]next: %j', { express, done });
    let response;
    if (!done) {
    if (typeof express === 'function') {
    response = express();
    } else {
    response = express;
    }
    Promise.resolve(response).then(step, err => step(err, true));
    } else {
    logger.debug('[Generator][run]when done, value: %j', express);
    resolve(express);
    }
    }
    }
    });
    };
    你这种写法不支持return,在done里面加一个resolve(express)就可以支持了

    一个generator自动执行器

    一个generator自动执行器 最近看 redux-saga的源代码, 作者写的yield执行器代码非常不错,详细的分析一下 支持异常处理 支持thunk 支持promos...