UNPKG

matrix-react-sdk

Version:
30 lines (29 loc) 1.5 kB
import { AsyncActionPayload } from "../dispatcher/payloads"; /** * Create an action thunk that will dispatch actions indicating the current * status of the Promise returned by fn. * * @param {string} id the id to give the dispatched actions. This is given a * suffix determining whether it is pending, successful or * a failure. * @param {function} fn a function that returns a Promise. * @param {function?} pendingFn a function that returns an object to assign * to the `request` key of the ${id}.pending * payload. * @returns {AsyncActionPayload} an async action payload. Includes a function * that uses its single argument as a dispatch function * to dispatch the following actions: * `${id}.pending` and either * `${id}.success` or * `${id}.failure`. * * The shape of each are: * { action: '${id}.pending', request } * { action: '${id}.success', result } * { action: '${id}.failure', err } * * where `request` is returned by `pendingFn` and * result is the result of the promise returned by * `fn`. */ export declare function asyncAction(id: string, fn: () => Promise<any>, pendingFn: () => any | null): AsyncActionPayload;