在我的 xhrHandler 中实现 superAgent

Implement superAgent inside my xhrHandler

我正在使用 ES5 和 React。我的 xhrHandler.js 是这样编码的 React.creatClass:

var XhrHandler = React.createClass({
    statics: {

Request: function(request) {
            var req = new XMLHttpRequest();

        var url = request.url;

        var self = this;

        req.onreadystatechange = function(e) {
            if (req.readyState == 4) {
                if (req.status == 200) {
                    request.callback(req.response);
                } else {
                    request.errback(status);
                }
            }
        }

        var method = request.method || "GET";

        if (method == "PUT") {
            //send put to api                
        }

        if (method == "DELETE") {
            //send delete to api
        }           

        if (method == "GET") {
            //get from api
        }
    }
},

render: function()
});

module.exports=XhrHandler;

问题是,我准备在我的代码中使用 superAgent,但我不想调用他,而是他们使用我的 xhrHandler,所以我想知道我是否可以在我的 xhrHandler 中实现 superAgent .

当然可以。假设 superAgent 你的意思是 this library:

// import superagent
var agent = require('superagent');
var XhrHandler = React.createClass({
    statics: {
        Request: function(request) {
           var method = request.method || "GET";
           if (method == "GET") {
              // call superagent instead of native XHR:
              agent.get( request.url ).end(function(err, res){
                if (res.ok) {
                  request.callback(res);
                } else {
                  request.errback(res)
                }
              });
           }
           // etc...
        }
     }
});