1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| module.exports = thunkyp
|
| function thunkyp (fn) {
| let running = null
|
| return ready
|
| function ready () {
| if (running) return running
| const p = fn()
| if (!(p instanceof Promise)) running = Promise.resolve(p)
| else running = p
| running.catch(onerror)
| return running
| }
|
| function onerror () {
| running = null
| }
| }
|
|