m.request 反序列化 属性 不返回字符串

m.request with deserialization property is not returning a string

根据 API documentation 中的示例,我正在尝试使用 m.request 实用程序(设置了反序列化标志)将 .txt 文件的内容作为字符串抓取;

var file = m.request({
    method: 'GET',
    url: 'file.txt', //
        deserialize: function(value) {
    return value;
    }
})

然而,

的输出
console.log(file);

实际上是字符串:

// function (){return arguments.length&&(a=arguments[0]),a}

不是文件中预期的内容。我确定我遗漏了什么,或者 m.request 选项设置不正确 - 谁能指出我正确的方向?

从您的示例来看,您似乎没有正确使用反序列化器,但这不是您的问题。但仅供参考(根据文档)反序列化器:

"By default, m.request uses JSON to send and receive data to web services. You can override this by providing serialize and deserialize options..."

然而,您的问题是请求函数是异步的,因此 returns 是一个承诺,而不是显式值。您将需要收到承诺并执行值:

var file = m.request({
    method: 'GET',
    url: 'file.txt', //
        deserialize: function(value) {
    return value;
    }
});

file.then(function(val) { console.log(val); }); 

仍然会调用反序列化,您可以访问该值。这应该可以解决您的问题。