0

カメラを使用して、javascriptとhtml5で記述されたアプリのローカルフォルダーに写真を保存するアプリを開発しようとしています。同じファイル(画像)を使用する3つのページがあり、各ページの準備完了セクションで画像を読み込むにはコストがかかりすぎるため、アプリの起動時にgetFilesAsync()メソッドを使用して画像を配列またはリストに読み込むことを検討していました次に、WinJS.Namespace.defineを使用して公開します。このソリューションは少量のデータに対しては機能しますが、imagesフォルダーに多数の画像が保存されている場合、非同期操作に時間がかかるため、別のページのファイルにアクセスしようとしても未定義です。

アプリの起動時にデータをロードし、他のページからデータにアクセスできるようにして、プログラムが終了するまで待機させる方法を知っていますか?私はこれが非同期プログラミングの正反対であることを知っていますが、他の解決策は見当たりません。ありがとうございました!

4

1 に答える 1

0

完了を待つことができるように、promiseとpromisechainを使用する必要があります。

var getFiles = Windows.Storage.StorageFolder.getStorageFilderSync("Your folder").then(function(folder) {
    return folder.getFilesAsync();
});

/* somewhere else in your app */
getFile.done(doWorkWithResult);

他のページから完了を呼び出すことができます。getFilesAsyncが完了すると、すぐに戻り、クエリを再実行しません。準備ができていない場合は、完了するまで待機します。

ここには、さらに実用的な例がいくつかある素晴らしいサンプルがあります。

于 2012-08-08T18:02:56.747 に答える