在Javascript(浏览器)中获取YAML或MsgPack

在Javascript(浏览器)中获取YAML或MsgPack,javascript,json,yaml,fetch,msgpack,Javascript,Json,Yaml,Fetch,Msgpack,我知道如何使用fetch API获取JSON,如下所示: fetch('http://example.com/movies.json') .then(response=>response.json()) .then(data=>console.log(data)); 我试图复制相同的东西来获取MsgPack或YAML数据,但所有尝试都失败了。很明显,我知道如何反序列化数据,但我怀疑我对那些我没有完全理解的承诺感到有点迷茫。由于没有响应。yaml(),我需要向我们提供一个额外的步骤,但我无法使其

我知道如何使用fetch API获取JSON,如下所示:

fetch('http://example.com/movies.json')
.then(response=>response.json())
.then(data=>console.log(data));
我试图复制相同的东西来获取MsgPack或YAML数据,但所有尝试都失败了。很明显,我知道如何反序列化数据,但我怀疑我对那些我没有完全理解的承诺感到有点迷茫。由于没有响应。yaml(),我需要向我们提供一个额外的步骤,但我无法使其工作。我尝试了response.body()和response.blob()。每次我这样做时,控制台日志中都没有可用的数据。我假设这意味着我的数据仍然是一个承诺,而不是通过回调进行处理和调用

我尝试过以下方法:

fetch('http://example.com/movies.json')
.then(response=>response.body())
.then(data=>console.log(反序列化(data));
或:

fetch('http://example.com/movies.json')
.then(response=>response.body())
.then(原始=>反序列化(原始))
.then(data=>console.log(data));
此处,
反序列化
是两种格式的反序列化/解码函数的占位符


任何人都有一个使用YAML的例子(我怀疑比MsgPack更流行)。

也许这个npm包可以帮助您解析YAML数据:


example.yaml:

docker:
- image: ubuntu:14.04
- image: mongo:2.6.8
  command: [mongod, --smallfiles]
- image: postgres:9.4.1
这对我很有用:

fetch('/example.yaml')
  .then(res => res.blob())
  .then(blob => blob.text())
  .then(yamlAsString => {
    console.log('yaml res:', yamlAsString)
  })
  .catch(err => console.log('yaml err:', err))
首先,我们将结果转换为Blob。之后,我们对其调用text()方法,该方法将blob转换为字符串


谢谢@AtaiLo。就像我说的,我在反序列化数据方面没有问题。如果我已经有了YAML,我就没事了。我的问题是获取一个YAML文件并使用Fetch API获取字符串。谢谢你的帮忙。嘿,谢谢。我没有尝试text()。我需要检查它是否适用于msgpack,因为它是二进制的,而不是文本。