异步 Action

由于目前浏览器的支持情况并没有完美支持原生的async类型函数,所以我们在有必须外部使用异步串联Actions的时候,必须用external来包装一下,以包装外部的API能够正确识别使用这个Action的异步特性。

例如:

import iFlow, { external } from 'iflow'
const store = iFlow({
  fetch: external(async function(){
    return await fetch(params) // omit
  })
})

(async ()=>{
  await store.fetch() // It will async for external effect.
})

当然如果你如果用类的方式来构建state管理的时,你可以选择使用装饰器@external()

例如:

import iFlow, { external } from 'iflow'
const store = iFlow(new class {
    @external()
    async fetch(){
      return await fetch(params) // omit
    }
})

(async ()=>{
  await store.fetch() // It will async for external effect.
})

更多详细说明请查看相关externalAPI文档。

⚠️⚠️⚠️️需要注意的是:

如果你只是想Action内部异步的话,那么其实你可以不必使用external来包装成外部的异步Action。

results matching ""

    No results matching ""