EmbeddedValueResolverAware EmbeddedValueResolverAware[#embeddedvalueresolveraware]一、基本信...
EmbeddedValueResolverAware EmbeddedValueResolverAware[#embeddedvalueresolveraware]一、基本信...
加instance主要是因?yàn)槟J(rèn)的上下文this指向的是window,不是對象實(shí)例棺滞,訪問不到屬性
一個(gè)generator自動執(zhí)行器一個(gè)generator自動執(zhí)行器 最近看 redux-saga的源代碼裁蚁, 作者寫的yield執(zhí)行器代碼非常不錯(cuò)矢渊,詳細(xì)的分析一下 支持異常處理 支持thunk 支持promos...
你這種寫法要是能加上instance和apply就可以支持 對象A實(shí)例.doSomething()這種調(diào)用了,doSomething是一個(gè)Generator函數(shù)
一個(gè)generator自動執(zhí)行器一個(gè)generator自動執(zhí)行器 最近看 redux-saga的源代碼枉证, 作者寫的yield執(zhí)行器代碼非常不錯(cuò)矮男,詳細(xì)的分析一下 支持異常處理 支持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里面加一個(gè)resolve(express)就可以支持了
一個(gè)generator自動執(zhí)行器一個(gè)generator自動執(zhí)行器 最近看 redux-saga的源代碼, 作者寫的yield執(zhí)行器代碼非常不錯(cuò)盆均,詳細(xì)的分析一下 支持異常處理 支持thunk 支持promos...