0.3.0
Add
createSuspensernow takes second argument:ctx. It allows to set a thisArg for eachuseSuspender()call. This argument can be overwritten usingFunction#{call,apply,bind}methods on any particularuseSuspender()call.
import createSuspender from "use-suspender"
import User from "./api/User"
const useSuspender = createSuspender(User.getUser, User)useSuspender.init()allows to call useSuspender earcly (outside of a component render function),
so that you can do something before your component will be actually called and rendered:
import creteSuspender from "use-suspender"
import React from "react"
const useSuspender = createSuspender(
() => new Promise(resolve => setTimeout(() => resolve("Hello, world!"), 1000))
)
// Calls your suspender function
useSuspender.init()
function HelloComponent() {
// Will return a result immediately if Promise returned by suspender function
// has been fulfilled before HelloComponent call.
const text = useSuspender()
return <div>{text}</div>
}The init() and useSuspender() functions can be used separately:
import creteSuspender from "use-suspender"
import React from "react"
const {useSuspender, init} = createSuspender(
() => new Promise(resolve => setTimeout(() => resolve("Hello, world!"), 1000))
)All changes: v0.2.0...v0.3.0