File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -329,7 +329,7 @@ test("flow typings", async () => {
329
329
numberToNumber : flow ( function * ( val : number ) {
330
330
yield promise
331
331
return val
332
- } ) , // should be () => Promise<Promise< number> >
332
+ } ) , // should be () => Promise<number>
333
333
voidToNumber : flow ( function * ( ) {
334
334
yield promise
335
335
return Promise . resolve ( 2 )
@@ -345,4 +345,8 @@ test("flow typings", async () => {
345
345
expect ( b ) . toBe ( 4 )
346
346
const c : number = await m . voidToNumber ( )
347
347
expect ( c ) . toBe ( 2 )
348
+ await m . voidToNumber ( ) . then ( d => {
349
+ const _d : number = d
350
+ expect ( _d ) . toBe ( 2 )
351
+ } )
348
352
} )
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @hidden
3
+ */
4
+ export type FlowReturn < R > = R extends Promise < infer T > ? T : R
5
+
1
6
/**
2
7
* See [asynchronous actions](https://github.com/mobxjs/mobx-state-tree/blob/master/docs/async-actions.md).
3
8
*
4
9
* @returns The flow as a promise.
5
10
*/
6
11
export function flow < R , Args extends any [ ] > (
7
- generator : ( ...args : Args ) => Generator < any , R , any >
8
- ) : ( ...args : Args ) => Promise < R > {
12
+ generator : ( ...args : Args ) => Generator < Promise < any > , R , any >
13
+ ) : ( ...args : Args ) => Promise < FlowReturn < R > > {
9
14
return createFlowSpawner ( generator . name , generator ) as any
10
15
}
11
16
You can’t perform that action at this time.
0 commit comments