如何解决等待效应器中的效应
是否有更多的“本机”方法代替waitForTask
?
import { createEffect } from 'effector'
const runTestTask = createEffect({
async handler (name) {
// Simulating long task
await new Promise(resolve => setTimeout(resolve,10000));
return { name };
}
});
function waitForTask (cb) {
if (runTestTask.pending.getState()) {
const unsub = runTestTask.doneData.watch(() => {
unsub();
cb({ ... });
});
} else {
cb({ ... });
}
}
解决方法
是的,效果本身具有四个字段 .done-处理程序解决后立即发出的事件 .fail-处理程序被拒绝后立即发出的事件 .finally-处理程序完成后立即发出的事件
如果我们谈论数据流,最简单的情况如下:
const $testStore = createStore({})
*here is your effect snippet*
$testStore.on(runTestTask.done,(prevState,payload) => payload)
OR
forward({
from: runTestTask.fail,to: showFailPopup
})
我写了article来解决常见的误解
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。