私はドキュメントとさまざまなサンプルをすべて調べましたが、すべてのコードは本来あるべきものであるように見えます。
ただし、プラグインできないように見えるメモリ リークが発生しています。私が知っていることは次のとおりです。
- IAsyncOperation メソッドを呼び出して、実際に
.done
or.then
を WinJS.Promise にアタッチすると発生します。 - リークしているオブジェクトには
Windows.Foundation.IAsyncOperation<T>
、AsyncOpPromise
(async メソッドが初めて呼び出されたときに動的に作成された?) と、最も重要な操作 (T) の結果 (非常に大きなオブジェクトになる可能性がある) が含まれているように見えます。 - 結果が数値、文字列、その他のオブジェクト タイプのいずれであるかに関係なく、JavaScript メモリ プロファイラーで明らかなリークが見られます。
例えば:
//This one leaks
document.getImageSourceAsync().done(function(source) {
//The intention is to do something with the image, but it doesn't really matter what does or does not happen here.
});
//This one doesn't leak
document.getImageSourceAsync();
ここにサンプル プロジェクトを作成しました: http://sdrv.ms/12TvPOa
よろしくお願いします。アダム