Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native Saga调用内部映射不起作用_React Native_Redux Saga_Saga - Fatal编程技术网

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)  
));