关于BUffer.JSON()

来源:4-4 antv-l7 入门

hy_wang

2020-07-07

图片描述
请问一下老师这一步是怎么回事呢?
我有两个意外,老师能帮忙解答下吗,

  • 课程中说res是一个buffer对象,可是buffer并没有json()方法吧,我没有记错的话应该是toJson()方法
  • 然后,Buffer是Nodejs环境的Object,为什么可以在浏览器环境Bom下运行
    麻烦老师解释下
写回答

1回答

扬_灵

2020-07-07

同学你好,res=>res.json():首先要明确前后端通信永远都是以字符串string来进行的,所以前台发送给后台的json数据都需要使用JSON.stringify来转换成字符串,而后台发送过来的json字符串"{retcode:'ok',data:{a:1}}"都需要使用eval或者JSON.parse()来转换成json才能使用data.a,那么很多时候我们为什么没有这么做呢,因为很多Ajax库已经自动做完了这一步,例如jQuery的Ajax就不需要,因为他已经自动帮你把传过来的字符串转化成json了。所以fetch中的res.json()的json()和JSON.parse()是同一个东西,只是他封装成json()这个方法而已.关于视频中老师说的res是一个buffer对象,首先实际返回的响应体res是一个ReadableStream,这里说的buffer对象只是一个比喻,想说明它是一个流,关于流操作中的ReadableStream接口呈现了一个可读取的二进制流操作,更多关于ReadableStream你可以参考https://developer.mozilla.org/zh-CN/docs/Web/API/ReadableStream ,如果不能解决你的问题,可以继续追问。


0
0

数据可视化入门到精通-打造前端差异化竞争力

同级别前端,掌握数据可视化薪资更高

1520 学习 · 1043 问题

查看课程