嵌套的WL.api调用中断

时间:2013-12-04 09:14:45

标签: javascript jquery onedrive

问题 我遇到的问题是,当我尝试从父母那里拨打第二个WL.api时,因为我需要第一个api的data输出,script似乎打破。我没有从第二个api得到任何错误响应。如果有人能用这个问题指出我正确的方向,我将不胜感激。

注意:第一次获取文件夹的工作正常,我得到了想要的数据。这是当我尝试进行第二次调用以获取所需文件夹中的文件时打破。

我的function是从按钮的onClick事件调用的,这是我的function

function getFolders() {
       WL.api({
             path: "me/skydrive/files",
             method: "GET"
       }).then(
             function(response) {
               var folders = response.data;
               $.each(folders, function () {
                      var folder = this;
                      if (folder.name == 'FooBar') {
                         WL.api({
                            path: "/" + folder.id + "/files",
                            method: "GET"
                            }).then(
                                function(response2) {
                                    var files = response2.data;
                                    $.each(files, function() {
                                        var file = this;
                                        if (file.name == 'Foo') {
                                            alert(file.id);
                                        }
                                    });
                                },
                                function(responseFailed) {
                                    alert(responseFailed.error.message);
                                }
                          );
                        }
                    });
                },
                function(responseFailed) {
                    alert(responseFailed.error.message);
                }
            );  
} 

1 个答案:

答案 0 :(得分:2)

也许您必须检查您是否收到了文件夹或相册,而不是文件,因为我认为您无法浏览文件中的文件。

if (folder.type == 'folder' || folder.type == 'album')
    if (folder.name == 'FooBar') { //do the call }

在你调用下一个api请求之前。

尝试,如果有帮助