当进行返回promise的异步WinJS调用时,promise的进程回调函数被调用的频率是多少?请考虑以下代码:
WinJS.xhr({ url: "http://localhost:51299/api/values" }).done(
function complete() {
console.log("complete: " + new Date().getTime());
},
function error() {
},
function progress() {
console.log("progress: " + new Date().getTime());
}
);
当我运行此代码时,我会每毫秒多次看到进度消息,总体而言,我可能会在1到1期间看到进度:消息100-200次从xhr调用中获取所有数据所需的-2秒。
答案 0 :(得分:4)
进度回调由承诺的来源决定 - 在本例中是XHR系统。当他们出来时你无法控制。在这种情况下,XmlHttpRequest正在更新进度。没有整体控制,只有在进行更新时才会发生异步操作。
如果发现性能影响,您应该考虑限制对进度更新的响应,但一般很难说该做什么,这取决于您的应用。