异步的理解
promise基本使用
- 第一步、
<script>
console.log(Promise);
</script>
说明这个是原生的API,我们可以直接去使用
首字母大写,说明是一个构造函数
- 第二步、
<script>
var obj = new Promise()
</script>
- 第三步、
<script>
var obj = new Promise(function(){})
console.log(obj);
</script>
- 第四步、
<script>
var obj = new Promise(function (succes, error) {
succes('成功的结果')
})
console.log(obj);
</script>
- 第五步
、
<script>
var obj = new Promise(function (succes, error) {
error('出错了')
})
console.log(obj);
</script>
- 第六步、
- 第七步、
<script>
var obj = new Promise(function (succes, error) {
error('出错了')
})
obj.then(function(){console.log(1)},function(){console.log(2)})
</script>
- 第八步、
<script>
var obj = new Promise(function (succes, error) {
error('出错了')
})
obj.then(function(result){console.log(result)},function(error){console.log(error)})
</script>
- 第九步、
promise解决回调地狱的问
- 第一步、先简单一点理解,不考虑error的情况
obj.then的返回值还是一个promise对象
- -3
最后catch可以只写一个
理解promise:包装回调函数
promise的问题:虽然解决了回调地狱的问题,但写法还是稍微有一点繁琐
异步函数的用法
如何代码可以如下的写法,这才是最像我们的同步写法的,最简洁明了直观
第一步、
第二步、
第三步、
这样写不可以,因为是异步的
第四步、
async函数中可能会有 await 表达式,async 函数执行时,如果遇到 await 就会先暂停执行 ,等到触发的异步操作完成后,恢复 async 函数的执行并返回解析值。