Skip to content

Commit

Permalink
Fixed #40
Browse files Browse the repository at this point in the history
  • Loading branch information
mweststrate committed Jul 24, 2017
1 parent 85447b5 commit f29ee0b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/now.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {extras} from "mobx";
import {fromResource, IResource} from "./from-resource";

const tickers:
Expand Down Expand Up @@ -33,6 +34,10 @@ const tickers:
* @returns
*/
export function now(interval: number | "frame" = 1000) {
if (!extras.isComputingDerivation()) {
// See #40
return Date.now();
}
if (!tickers[interval]) {
if (typeof interval === "number")
tickers[interval] = createIntervalTicker(interval);
Expand All @@ -58,7 +63,6 @@ function createIntervalTicker(interval: number): IResource<number> {
);
}


function createAnimationFrameTicker(): IResource<number> {
let subscriptionHandle: number;
const frameBasedTicker = fromResource<number>(
Expand Down
12 changes: 12 additions & 0 deletions test/now.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,15 @@ test('now should tick', t => {
t.end()
}, 500)
})

test('now should be up to date outside reaction, #40', t => {
const d1 = utils.now(1000);
t.true(typeof d1 === "number");
setTimeout(() => {
const d2 = utils.now(1000);
t.true(typeof d2 === "number");
t.notEqual(d1, d2);
t.true((d2 - d1) > 400);
t.end();
}, 500)
})

0 comments on commit f29ee0b

Please sign in to comment.