Redux saga noob在这里.
我需要创建一个saga,从我的API服务器加载redux存储的初始状态.
这涉及使用两个异步传奇:getCurrentUser和getGroups.
我需要并行发出这些ajax请求,并在发出动作之前等待GET_CURRENT_USER_SUCCESS和动作,告诉UI是时候渲染反应组件.GET_GROUPS_SUCCESSpageReady
我提出了一个hacky解决方案:
function * loadInitialState () {
yield fork(getCurrentUser)
yield fork(getGroups)
while (true) {
yield take([
actions.GET_GROUPS_SUCCESS,
actions.GET_CURRENT_USER_SUCCESS
])
yield take([
actions.GET_GROUPS_SUCCESS,
actions.GET_CURRENT_USER_SUCCESS
])
yield put(actions.pageReady())
}
}
Run Code Online (Sandbox Code Playgroud)
此代码的问题在于,如果由于某种原因GET_GROUPS_SUCCESS发出两次,pageReady则会提前调用该操作.
我怎样才能让redux saga等待GET_GROUPS_SUCCESS并GET_CURRENT_USER_SUCCESS以任何顺序至少发生一次?
我有一个用户上传图像的应用程序,它必须有三种不同的尺寸(缩略图,中等大小,全尺寸).我的用户无需修改图像.
看来有两种选择:
选项1:每当我想显示缩略图时,请使用图像转换网址.防爆.https://www.filepicker.io/api/file/hFHUCB3iTxyMzseuWOgG/convert?w=200&h=250
选项2:使用带存储的convert()将缩略图存储在S3中.
我的问题是我可以使用选项1吗?这对性能有何影响?转换后的文件是否缓存在filepicker.io的末尾,或者每当用户的浏览器点击转换网址时,filepicker都会转换图像?