网络请求设置超时,只能对Promise设置超时
WinJS.Promise.timeout(1500,WinJS.xhr({ url: "http://www.microsoft.com" })).then();
对于返回的Promise一定要即时处理
WinJS.xhr({ url: url }).then(function () {
console.log("hello");
}, function () {
console.log("error");
}).then(function () {
console.log("world");
});
注:对于异常的promise,一定要有处理其错误信息的then,即then里要有onError函数。
否则异常抛出程序闪退。
如:在飞行模式下发起网络请求
WinJS.xhr({ url: url }).then(function () {
console.log("hello");
});
Promise会抛出异常,而then没有处理,程序闪退!
对于.then执行链也一样。必须要有一个then处理错误,否则程序闪退。
promise发生异常.then如果处理异常了,则返回一个正常promise,不引发异常。.then不处理异常,则返回一个异常promise往下传递,不引发异常。
.done如果不处理异常,则引发异常。.done返回undefined,可用于执行链的最末端。
引发异常就导致程序闪退。