当mithril的m.request
因超时或网络错误而失败时,返回的错误只是null
。这使得无法区分
有没有办法确定这些信息?
在下面的代码段中,请求每次都会超时,因为限制为1毫秒。返回的错误是null
。如果将其更改为1000毫秒,它将起作用。如果您关闭了wifi,然后重试,它将返回另一个null
错误。
const Test = {
controller: function() {
var user = m.prop('Waiting...');
var error = m.prop();
var args = {
method: 'GET',
url: "https://jsonplaceholder.typicode.com/users",
config: function(xhr) {
xhr.timeout = 1;
}
};
function refreshUser() {
m.request(args)
.then( users => user(users[0].name), error);
}
return { user, error, refreshUser};
},
view: function(ctrl) {
return m('div', [
m('div', 'Fetched User: ' + ctrl.user()),
m('div', 'Network Error: ' + ctrl.error()),
m('button', {onclick: ctrl.refreshUser }, 'Refresh User')
]);
}
}
m.mount(document.body, Test);

<script src="https://cdnjs.cloudflare.com/ajax/libs/mithril/0.2.5/mithril.min.js"></script>
&#13;
答案 0 :(得分:2)