如何从 Backbone 中的响应访问响应文本?

How to access responseText from response in Backbone?

    var $ = require('jquery'),
        Handlebars = require('handlebars'),
        Backbone = require('backbone'),
        mainJs = require('./main');


var services = {



    authenticationservice: function(collections) {
         var jsonreturn;

         var api_token = mainJs.get_api_token();


        jsonreturn = collections.fetch({

        headers: {'Authorization': 'Bearer ' + api_token.access_token},
        success: function (collection, response, options) {

           var responsejson = JSON.parse(response.responseText);
           return responsejson;

        },

        error: function (collection,response,options){

            var errorjson = JSON.parse(response.responseText);
            //alert(errorjson.error_description);
             return errorjson;

        }
    });

        return jsonreturn; 



    }

};




module.exports = services;

如何从 jsonreturn 访问 responseText 请帮忙?

由于 collections.fetch 在行为上是异步的,您应该将 return jQuery 延迟为对 authenticationservice 函数的调用。参考下面的代码

authenticationservice : function(){
  var def = $.Deferred();
  ...
  //Somewhere in success
  success: function(...){
    def.resolve(responsejson);
  }
  ...
  //Somewhere in error
  error:function(...){
    def.reject(errorjson);
  }
  ...
  return def;
}

现在您调用此服务的位置必须对齐以处理如下承诺

service.authenticationservice().then(
  function(responsejson){
    //Do processing in case of success.
  },
  function(errorjson){
    //Do processing in case of failure
  }
);

有关 JQuery Deferred 的更多详细信息。