0

一部のコードを省略していますが、これがコアです。

function App() {

var self = this;

window.requestFileSystem(LocalFileSystem.PERSISTENT, 
                          0, self.onGotFs, self.onError(1) );


... omitted ....


this.onGotFs = function(file_system) {
    console.log("gotFs:" + file_system.root.full_path );
    self.file_system = file_system;
};

this.onError = function(id) {
    console.log("app error #" + id);
};


    ... omittted ...

}

コンソールを見ると、両方のメッセージが表示されます

app error #1
gotFs ! 

注意:file_system.root.full_path文字列が表示されません。プリントエンドではありません

したがって、主な質問は次のとおりです。

requestFileSystemが成功とエラーの両方のコールバックをトリガーするのはなぜですか?

おそらく私はいくつかの知識ベースを欠いています。私はhtml5初心者です

ドキュメンテーション

この定義はw3cのドキュメントに記載されています-段落4.4.1

interface LocalFileSystem {
    const unsigned short TEMPORARY = 0;
    const unsigned short PERSISTENT = 1;
    void requestFileSystem (unsigned short type, unsigned long long size, FileSystemCallback successCallback, optional ErrorCallback errorCallback);
    void resolveLocalFileSystemURL (DOMString url, EntryCallback successCallback, optional ErrorCallback errorCallback);
};
4

1 に答える 1

1
self.onError(1)

これはonError すぐに呼び出し、結果をに渡しrequestFileSystemます。

以下を呼び出す関数を渡す必要がありますonError

requestFileSystem(..., function() { self.onError(1); });

また、onGotFs間違って呼び出されますthis。同様の関数を渡すか、渡すことができますself.onGotFs.bind(self)

于 2013-03-21T20:57:30.610 に答える