0
花了几个小时试图弄清楚如何在地图内并行运行传奇。传说里面的地图不起作用
试过了我发现的东西:yield result.map(item => call(api.endpoint, item))
但似乎没有发生。
下面是我在做什么:在for循环工作完成后
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);
// }
// }
}
顺序调用。但是地图内部似乎没有发生任何事情。没有得到任何exception/errors
以及。
syncCanvasesByFolder
当我使用地图时永远不会被调用。
解决:只好内部地图返回 '产量均(folders.map (文件夹=> { 调用(syncCanvasesByFolder,folder.id,lastSyncedAt,access_token) }));' –