code: function (fnCallbackAsyncL1) {
  
              async.whilst(
                  function () {
                      return aArtifactsSyncWork.length > 0;
                  },
                  function (fnCallbackAsyncL2) {
                      var oItem = aArtifactsSyncWork.shift();
  
                      switch (oItem.type) {
                          case util.OBJECT_TYPE.folder:
                              me.syncFolder(oItem.id, oItem.modif, fnCallbackAsyncL2);
                              break;
  
                          case util.OBJECT_TYPE.file:
                              me.syncFile(oItem.id, oItem.modif, sCwd, fnCallbackAsyncL2);
                              break;
                      }
  
                  },
                  function (oError, oResult) {
                      fnCallbackAsyncL1(oError, oResult);
                  }
              );
          }
docs: L1, step 4: do synchronization of folders and files