vue 中的 promise 的使用

在JavaScript的世界中,所有代码都是单线程执行的。

由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用回调函数实现。

在node.js中, 我们知道了可以通过代码读取文件中的内容

//通过函数读取文件
readFile(path.join(__dirname, './one.txt'))

为什么我们要学习 promise 封装呢?

首先我们要明确我们封装的目的是什么?

  1. 我们需要给一个路径,然后通过封装函数得到返回 的结果
function getFileByPath(fpath) {
	fs.readFile(fpath, 'utf-8',(err,dataStr) => {
	if(err)  throw err
	return dataStr
	})
}

因为是异步的,所以直接返回return

程序不会等待result, 因此result 是 undefined??

这里 因为 return 是在函数内部,,而不是在函数外部,那我要怎么获得函数里面的返回值,然后返回给函数外呢????
给他一个 callback() 函数就行了

如果不想阻塞,那么我可以通过嵌套

如果嵌套有很多层,就是我们所说的回调地域,你看下面的对曾嵌套的回调代码:

getFile(path.join(__dirname, './1.txt'), function(data) {
console.log(data)
getFile(path.join(__dirname, './2.txt'), function(data) {
console.log(data)
getFile(path.join(__dirname, './3.txt'), function(data) {
console.log(data)
})
})
})

为了解决这个回调地域的问题,promise就发挥它的作用了。。。。。

在这里插入图片描述
在控制台打印出promise, 可以看到promise就是一个构造函数,自定义对象, 可以new一个promise示例。

在这里插入图片描述

形式上和具体的 promise 的异步操作

在这里插入图片描述

函数的一个作用,就是假如我想先不执行函数体的代码

我就可以先放到函数里边。然后我先执行的时候调用这个函数就可以了

再原来普通的读取文件,是不能直接return返回值回去的
那用callback() 那callback从哪里来呢
callback也传递两个参数,

在promise 中也有两个参数

这几个是形参,那实参是什么,不知道,我知道的是失败执行的函数,成功执行的函数

因为是异步的,所以.then会先执行。然后会把,

我们需要的resolve,reject函数先传过去的
可能记住一句话就好了吧:再上一个.then 中,返回一个新的promise实例,可以继续用下一个.then来处理
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值