在PhoneGap中以同步方式(esp)的异步Javascript

时间:2013-04-04 21:16:11

标签: javascript jquery cordova asynchronous promise

我对JS异步编程有点新,我在Phonegap中使用它。我有一个函数调用

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的承诺和回调,但我很难让我抓住它。任何人都可以使用延迟对象给我一个例子。我见过使用管道的例子,但已弃用。

1 个答案:

答案 0 :(得分: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);