diff --git a/packages/reactive/src/__tests__/async/funcs.test.ts b/packages/reactive/src/__tests__/async/funcs.test.ts index 964df5c..d310a73 100644 --- a/packages/reactive/src/__tests__/async/funcs.test.ts +++ b/packages/reactive/src/__tests__/async/funcs.test.ts @@ -126,6 +126,27 @@ describe("异步计算控制功能",()=>{ store.state.total }) }) + test("当执行计算函数重试5次过程中读取retry值",()=>{ + let count = 0 + let times:number[] = [] + let retryValues:(number|undefined)[] = [] + return new Promise((resolve)=>{ + const store = createStore({ + price:2, + count:3, + total:computed(async (_,{})=>{ + throw new Error("error") + },['price','count'],{id:'x',retry:[5,100]}) + },{onceComputed:true}) + store.watch((valuePath)=>{ + retryValues.push(store.state.total.retry) + if(retryValues.length===5){ + expect(retryValues).toEqual([5,4,3,2,1,0]) + resolve() + } + },['total']) + }) + },0) diff --git a/packages/reactive/src/watch/createWatch.ts b/packages/reactive/src/watch/createWatch.ts index 57e7508..4be8fa6 100644 --- a/packages/reactive/src/watch/createWatch.ts +++ b/packages/reactive/src/watch/createWatch.ts @@ -24,7 +24,7 @@ export function createWatch(store:IStore){ const valuePaths:string[][] = triggerReasons.map((reason:any)=>reason.keyPath) listener(valuePaths) },()=>{ - return depends?.map(dep=>getValueByPath(store.stateCtx.state,dep)) + return depends?.map(dep=>getValueByPath(store.state,dep)) }) return unwatch }