今天的新的知识点ES6中的Promise
为什么要跟我说这个
廖雪峰:https://www.liaoxuefeng.com/wiki/1022910821149312/1023024413276544
在JavaScript的世界中,所有代码都是单线程执行的。
由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用回调函数实现
读取文件不是后端的内容吗?在学node的时候
我们前端好像并没有方法可以获取
啥呀,那些在node中用require引入的
什么fs path
我丢好像在这里也可以直接
const fs = require(‘fs’)
是和我在node中学的一模一样啊
这是读取文件的第一个参数,文件名
箭头函数 () => {}
为什么要我们自己封装,这个promise有什么关系
我们的目的是什么:
我给你一个路径,你要返回结果给我。
在原来的正常没有返回结果吗
因为是异步的,所以直接return
程序不会等待result ,因此result 是undefined?
我记起来的,这里的return,不是外边函数的return,而是内边的
按我怎么获取到里边函数的返回值,然后返回给外边的函数呢
为什么给他一个callback(dataSrc) 就可以了呢
那还是和promise有什么关系
有时候还是搞不清这个return 的后面不执行
如果不想阻塞,那么我么可以嵌套
如果嵌套很多层,就叫回调地狱
终于把promise引出来了,那么promise到底是什么呢
在控制台输出,console.dir(promise) 发现是大写的Promise
所以是个构造函数,自定义对象 就可以new 一个Promise 的实例
reject:失败之后要做的事情 resolve(决心)引申为成功之后要做的事情
这两个就是回调函数
vue-sourse 的then应该是一样的
那我怎么和文件挂钩呢 promise实例
形式上和具体的promise的异步操作
函数的一个作用,就是假如我想先不执行函数体的代码
我就可以先放到函数里边。然后我先执行的时候调用这个函数就可以了
再原来普通的读取文件,是不能直接return返回值回去的
那用callback() 那callback从哪里来呢
callback也传递两个参数,
在promise 中也有两个参数
这几个是形参,那实参是什么,不知道,我知道的是失败执行的函数,成功执行的函数
这都是啥呀? 我得自己撸一遍
哎呀,不太懂啊
把整个promise实例 全部返回 return
也不用在用变量来接受了吧 直接 .then
搞了那么久,把我都搞晕了,我还是不知道有什么用
因为是异步的,所以.then会先执行。然后会把,
我们需要的resolve,reject函数先传过去的
可能记住一句话就好了吧:再上一个.then 中,返回一个新的promise实例,可以继续用下一个.then来处理
在回调地狱中,故意写错文件名
然后呢在函数的外边写 console.log(“okok”)
为什么会先输出okok 再报错呢
因为是异步操作,但我读取文件的时候
我是不会等你的,我会先往后边执行
当我读到文件错误的时候
我才会报错 又跟我说这个 .then没有什么意义
前面跟我说可以省略失败回调
然后现在又说可以添加
真的是一步一步推翻自己的东西
可能教学就这样的吧
通过某种东西引入,某种东西
哈哈哈 需求引出
这个catch 和throw的区别
jquery中的ajax的promise
.then是在ajax的外边