Promise的使用
在编程中会存在异步的问题
常见异步调用的情况:(1)定时任务 (2)Ajax (3)事件函数
多次调用异步函数会出现的情况 (1)多次异步调用的结果顺序不确定
(2)异步调用结果如果存在依赖需要嵌套
如以下情况(多层嵌套,可读性不好)
<script> $.ajax({ url: 'http://localhost:3000/path', success: function(data) { console.log(data); $.ajax({ url: 'http://localhost:3000/path1', success: function(data) { console.log(data); $.ajax({ url: 'http://localhost:3000/path2', success: function(data) { console.log(data); } }) } }) } }); </script>
Promise的出现可解决上述问题,Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,用它可获取异步操作的消息。
优点:可以避免多层异步调用嵌套问题
Promise对象提供了简洁的API,使得控制异步操作更加容易
Promise的基本用法
(1)实例化Promise对象,构造函数中传递地参数,该函数中用用于处理异步任务
(2)resolve与reject两个参数用于处理成功和失败的情况,通过.then获取处理结果
<script> var p = new Promise(function(resolve, reject) { var flag = false; if (flag) { resolve('hello'); } else { reject('出错了'); } }); p.then(function(data) { console.log(data); }, function(inif) { console.log(inif); }) </script>