0

根据API 文档中的示例,我正在尝试使用 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 选项 - 谁能指出我正确的方向?

4

1 回答 1

2

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

“默认情况下,m.request 使用 JSON 向 Web 服务发送和接收数据。您可以通过提供序列化和反序列化选项来覆盖它......”

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

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

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

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

于 2015-02-01T20:57:03.710 回答