promise
promise是什么:
1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作 promise,帮助我们处理队列
有哪些状态和参数以及原理
状态有三个:
pending(进行中的状态)也是初始状态
fulfilled(成功的状态)
** rejected**(失败的状态)
原理:
promise接收一个回调函数作为参数 该函数中接收两个参数作为参数 一个是resolve另一个是reject
使用:resolve是将promise转化为成功状态的回调函数 reject是将promise转化为失败的回调函数
参数:
resolve 作用:将promise对象状态,从未完成变成成功,在异步操作时调用,并将结果传出去
reject作用:将promise未完成变成失败,在异步操作时调用,并将报的错误传出去
详解
new Promise(
function (resolve, reject) {
// 一段耗时的异步操作
resolve('成功') // 数据处理完成
// reject('失败') // 数据处理出错
}
).then(
(res) => {console.log(res)}, // 成功
(err) => {console.log(err)} // 失败
)
异步操作语法
1。监听事件
document.getElementById('#start').addEventListener('click', start, false);
function start() {
// 响应事件,进行相应的操作
}
// jquery on 监听
$('#start').on('click', start)
2.回调
// 比较常见的有ajax
$.ajax('http://www.wyunfei.com/', {
success (res) {
// 这里可以监听res返回的数据做回调逻辑的处理
}
})
// 或者在页面加载完毕后回调
$(function() {
// 页面结构加载完成,做回调逻辑处理
})
astync/await
解释
Async 和 await 是一种同步的写法,但还是异步的操作,两个内容还是必须同时去写才会生效,而且 await 的作用就是可以等到你的数据加载过来以后才会去运行下边的 js 内容,而且 await 接收的对象必须还是个 promise 对象,如果是接收数据的时候就可以直接用一句话来接收数据值,所以 async await 主要应用是在数据的接收,和异步问题的处理,主要是还是解决不同执行时机下的异步问题!
例子