首页 > 应用开发 > IT综合 > Promise入门详解
异步调用异步
JavaScript的执行环境是单线程。
所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它会「阻塞」其他任务。这个任务可称为主线程。
异步模式可以一起执行多个任务。
常见的异步模式有以下几种:
定时器
接口调用
事件函数
今天这篇文章,我们重点讲一下接口调用。接口调用里,重点讲一下Promise。
接口调用的方式
js中常见的接口调用方式,有以下几种:
原生ajax基于jQuery的ajax Fetch Promise axios多次异步调用的依赖分析
多次异步调用的结果,顺序可能不同步。
异步调用的结果如果存在依赖,则需要嵌套。
在ES5中,当进行多层嵌套回调时,会导致代码层次过多,很难进行维护和二次开发;而且会导致回调地狱的问题。ES6中的Promise就可以解决这两个问题。
Promise概述Promise的介绍和优点
ES6中的Promise是异步编程的一种方案。从语法上讲,Promise是一个对象,它可以获取异步操作的消息。
Promise对象,可以将异步操作以同步的流程表达出来。使用Promise主要有以下好处:
可以很好地解决回调地狱的问题(避免了层层嵌套的回调函数)。
语法非常简洁。Promise对象提供了简洁的API,使得控制异步操作更加容易。
回调地狱的举例
假设买菜、做饭、洗碗都是异步的。
但真实的场景中,实际的操作流程是:买菜成功之后,才能开始做饭。做饭成功后,才能开始洗碗。这里面就涉及到了多层嵌套调用,也就是回调地狱。
Promise的基本用法
(1)使用new实例化一个Promise对象,Promise的构造函数中传递一个参数。这个参数是一个函数,该函数用于处理异步任务。
(2)并且传入两个参数:resolve和reject,分别表示异步执行成功后的回调函数和异步执行失败后的回调函数;
(3)通过promise.then()处理返回结果。这里的p指的是Promise实例。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69969661/viewspace-2685280/ ,如需转载,请注明出处,否则将追究法律责任。