如何检查unwrapError

时间:2016-02-16 01:19:34

标签: mithril.js

var users = m.request({
  method: "GET",
  url: "hoge.json",
  unwrapSuccess: function(response) {

    return response;
  },
  unwrapError: function(response) {
    //return response.error;
    return "404 error";
  }
});

users.then(function(result) {
  console.log(result); 
});

删除" hoge.json"。

我想抓住" 404错误"但是

  

uncaught SyntaxError:意外的标记<

2016/2/18添加

我想测试警报(" unwrapError");

以下代码始终是警报(" unwrapSuccess");

如何更改以下代码?

什么是unwrapError?

▼JS

var users = m.request({
    method: "GET",
    url: "hoge.json",
    unwrapSuccess: function(response) {
          alert ("unwrapSuccess");
          return response;
    },
    unwrapError: function(response) {
          alert ("unwrapError");
          return "error";
    }
});


users.then(function(result) {
  console.log(result); 
});

▼hoge.json

[{"name": "John"}, {"name": "Mary"}]

1 个答案:

答案 0 :(得分:0)

如果您查看mithril's source code,您会发现m.request只是XMLHttpRequest API的包装器。这就是请求的readyState属性发生变化时发生的情况:

xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
        if (xhr.status >= 200 && xhr.status < 300) {
            options.onload({type: "load", target: xhr})
        } else {
            options.onerror({type: "error", target: xhr})
        }
    }
}

只要响应状态不是2xx,就会调用mithril的unwrapError回调。

updated the fiddle calling a URL that returns a 500 response现在调用unwrapError