Wrap a generator that can be called only once, like _.once
.
$ npm install co-once
var once = require('co-once');
var wrapped = once(getUser);
var user = yield* getUser();
user = yield* getUser(); // result is cached, getUser is only called once
MIT