0
我剛開始使用FRP和培根,所以請原諒我對術語的無知。BaconJS目錄結構遞歸示例
我在一個項目,我試圖在谷歌驅動器中創建一個目錄結構。我需要確保在子目錄之前創建父目錄以創建層次結構。
我寫了下面的代碼。但是,幾分鐘後,我遇到了Google拋出的「超出用戶訪問量限制」的情況,這意味着我打電話過快地請求了太多的請求。
我需要找到一種方法來遞歸地優化創建目錄,然後希望添加一些批處理,以便加快順序調用。
有沒有人有關於如何做到這一點的想法?
var _generateFolder = function(dirArray, gDrive, parentDir) {
// chunk array into size of 2 elements
var chunked = _.chunk(dirArray, 5)
return Bacon
.sequentially(1000 * 5, chunked) // Stream with all the chunks
.flatMapConcat(function(arrayChunk){ // Stream for all items
return Bacon.fromArray(arrayChunk)
})
.flatMap(_createOrUpdateGFolder)
.filter(function removeAllItemsWithNoChildren(dir) {
return dir.children.length > 0;
})
.flatMap(function createSubDirectoriesForItem(dir) {
console.log("Sync children folders:" + dir.title);
return _generateFolder(dir.children, gDrive, dir);
})
}
dir = {
title:"A",
children:[
{
title: "AA"
children:[
{
title:"AAA",
children:[]
}
]
},
{
title: "AB"
children:[
{
title:"ABA",
children:[]
},
{
title:"ABB",
children:[]
}
]
},
]
}
_generateFolder(dir, drive, null)
有沒有辦法讓一個流,遞增目錄到該流,遞歸?然後在該流上使用chunk + sequential?