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); });
仍然会调用反序列化,您可以访问该值。这应该可以解决您的问题。
根据 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); });
仍然会调用反序列化,您可以访问该值。这应该可以解决您的问题。