You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
1.0 KiB
JavaScript

"use strict";
const consumable = require("./");
let singleUseValue = consumable(42);
console.log(singleUseValue.isSet()); // true
console.log(singleUseValue.peek()); // 42
console.log(singleUseValue.consume()); // 42
console.log(singleUseValue.peek()); // Throws!
console.log(singleUseValue.isSet()); // false
/* Now let's try with a different value, and using `replace`... */
singleUseValue.set(13);
console.log(singleUseValue.peek()); // 13
console.log(singleUseValue.replace(9001)); // 13
console.log(singleUseValue.peek()); // 9001
/* Note how it can distinguish between an explicitly-set `undefined`, and just nothing being set. */
singleUseValue.set(undefined);
console.log(singleUseValue.isSet()); // true
console.log(singleUseValue.peek()); // undefined
console.log(singleUseValue.consume()); // undefined
console.log(singleUseValue.isSet()); // false
console.log(singleUseValue.peek()); // Throws!
console.log(singleUseValue.consume()); // Throws!