【发布时间】:2013-03-27 03:45:30
【问题描述】:
我对在 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);
但它认为文件系统是未定义的,所以有几个问题:
- 错误是Phonegap不接受匿名函数这种方式吗
- 我正在查看 Jquery 中的承诺和回调,但我正在努力让我了解它。谁能给我一个使用 defer 对象的例子。我见过使用管道的示例,但已弃用。
【问题讨论】:
-
stackoverflow.com/questions/15819651/progress-on-when-call/… 看看,我几个小时前问过这个。
-
回调令人沮丧,对吧?在 F# 中,回调链非常简单 - 您可以使用 F# Async。它看起来像同步代码,但不是。 F# Async 使用 WebSharper 编译为 JavaScript,PhoneGap 支持也即将到来。
-
也许这只是变量/函数范围的问题?
标签: javascript jquery cordova asynchronous promise