我一直在阅读文档和各种示例,我的所有代码似乎都应该是这样。
但是,我遇到了似乎无法解决的内存泄漏问题。这是我所知道的:
- 它发生在调用 IAsyncOperation 方法并实际将
.done
or附加.then
到 WinJS.Promise 时。 - 泄漏的对象似乎包括 a
Windows.Foundation.IAsyncOperation<T>
, anAsyncOpPromise
(在第一次调用异步方法时动态创建的?),最重要的是,操作的结果 (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
预先感谢您的任何帮助。亚当