React native Saga调用内部映射不起作用
花了几个小时试图找出如何在地图中并行运行传奇 尝试我的发现:React native Saga调用内部映射不起作用,react-native,redux-saga,saga,React Native,Redux Saga,Saga,花了几个小时试图找出如何在地图中并行运行传奇 尝试我的发现:yield result.map(item=>call(api.endpoint,item)) 但似乎什么也没发生 以下是我所做的: export function* syncCanvasesByFolder(<someParams>) { yield call(api.syncCanvasForFolder, <someParam>); } export default function* syncA
yield result.map(item=>call(api.endpoint,item))
但似乎什么也没发生
以下是我所做的:
export function* syncCanvasesByFolder(<someParams>) {
yield call(api.syncCanvasForFolder, <someParam>);
}
export default function* syncAllFoldersForSurvey(<someParams>) {
// Get list of folder for a survey
const folders = yield call(data.getFolderBySurvey, surveyId);
//For each folder sync canvases
yield all(folders.map(folder => {
call(syncCanvasesByFolder, folder.id, lastSyncedAt, access_token)
}));
/*Sequential call*/
// for (const i in folders) {
// if (folders.hasOwnProperty(i)) {
// yield call(syncCanvasesByFolder, folders[i].id, lastSyncedAt, access_token);
// // yield call(canvasSyncSaga.syncAllCanvasesForFolder, folders[i].id, lastSyncedAt);
// }
// }
}
导出函数*syncCanvasesByFolder(){
收益调用(api.syncCanvasForFolder,);
}
导出默认函数*syncAllFoldersForSurvey(){
//获取用于调查的文件夹列表
const folders=yield call(data.getFolderBySurvey,surveyId);
//对于每个文件夹同步画布
生成所有文件夹(folders.map)(文件夹=>{
调用(SyncCanvaseByFolder、folder.id、lastSyncedAt、access\u令牌)
}));
/*顺序呼叫*/
//用于(文件夹中的常量i){
//if(folders.hasOwnProperty(i)){
//产生呼叫(SyncCanvaseByFolder,folders[i].id,lastSyncedAt,access\u令牌);
////yield call(canvasSyncSaga.syncAllCanvasesForFolder,folders[i].id,lastSyncedAt);
// }
// }
}
在for循环中完成的顺序调用正在工作。但地图内部似乎什么也没有发生。也没有得到任何异常/错误
syncCanvasesByFolder
在我使用map时不会被调用。若要隐式返回,请不要在函数内部使用花括号{}
带括号(不起作用)
无括号(工程)
对于括号,您必须使用return
yield all(folders.map(folder => {
return call(syncCanvasesByFolder, folder.id, lastSyncedAt, access_token)
}));
没有括号,返回是隐式的
yield all(folders.map(folder => call(syncCanvasesByFolder, folder.id, lastSyncedAt, access_token)
));
已解决:必须返回内部map
yield all(folders.map(folder=>{call(syncCanvasesByFolder,folder.id,lastSyncedAt,access_token)})代码>
yield all(folders.map(folder => {
return call(syncCanvasesByFolder, folder.id, lastSyncedAt, access_token)
}));
yield all(folders.map(folder => call(syncCanvasesByFolder, folder.id, lastSyncedAt, access_token)
));