0

我对在 Phonegap 中使用的 JS 异步编程有点陌生。我有一个函数调用

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,onFSWin , onFSFail);

var onFSWin = function(fileSystem) {        
  fileSystem.root.getDirectory("Icenium Demo", {create: false, exclusive: false}, onGetDirectoryWin, onGetDirectoryFail);
}

这个回调有效,但是当有 4-5 个调用链时,它开始变得非常混乱。我试过这个

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, 
function(filesystem){
        fileSystem.root.getDirectory("Icenium Demo", {create: false, exclusive: false},    onGetDirectoryWin, onGetDirectoryFail); 
       }, onFSFail);

但它认为文件系统是未定义的,所以有几个问题:

  1. 错误Phonegap不以这种方式接受匿名函数吗
  2. 我正在查看 Jquery 中的承诺和回调,但我正在努力解决它。谁能给我一个使用 defer 对象的例子。我见过使用管道的例子,但不推荐使用。
4

1 回答 1

0

嗨,我认为延迟模式不适用于 Phonegap,它不会返回延迟对象。然而,该视频在解释承诺模式方面非常有用。这是我为它的价值而工作的一些基本代码

var step1 = $.getJSON('/test1.txt', function (data) {
return data;
});



var step2 = $.getJSON('/test2.txt', function (data) {
return data;
});

var processStep1 = function (data) {
var d1 = data.one;
alert(d1);
return $.getJSON('/test2.txt', function (data) {
    return data;
});

}

var processStep2 = function (data) {
$.each(data, function (key, val) {
    alert(val);
});
}

step1.then(processStep1).then(processStep2);
于 2013-04-08T19:44:07.647 回答