2014-06-24 19 views
0

我需要將Google Drive獲取文件夾的fileId。如果該文件夾不存在,我需要創建一個具有該名稱的文件夾並返回fileId。用fileId,我需要做其他工作。如何在Dart中處理其他未來

Dart中的Google Drive API對我來說可以,我可以使用Dart創建一個文件夾。問題是關於未來。 的代碼如下:

drive.files.list(q:"title='TEST'").then((result){   
    if(result.items.length == 0) { 
     driveclient.File file = new driveclient.File.fromJson({"title":"TEST", "mimeType": "application/vnd.google-apps.folder"}); 
     drive.files.insert(file).then((result2) { 
     return result2.id;   
     }); 
    } else { 
     return result.items[0].id; 
    } 
    }); 

當測試存在,則返回的ID。但是如果TEST沒有,函數錯誤,因爲沒有返回。

如何做到這一點?

在此先感謝。

回答

3

您需要從您在第4行調用則方法返回未來:

drive.files.list(q:"title='TEST'").then((result){   
    if(result.items.length == 0) { 
    driveclient.File file = new driveclient.File.fromJson({"title":"TEST", "mimeType": "application/vnd.google-apps.folder"}); 
    return drive.files.insert(file).then((result2) { 
     return result2.id;   
    }); 
    } else { 
    return result.items[0].id; 
    } 
}); 

則()返回一個新的未來有從方法的返回值完成你給作爲參數傳遞給方法。那麼()也足夠聰明,可以解決所有嵌套的未來,因此您將始終在一個then()方法內處理一個值,而永遠不會處理Future的一個實例。

相關問題