Promise
语法: ES6新增一个对象
作用: 对异步任务进行封装,更好的更优雅的处理异步任务结果
使用:
let promise = new Promise(function(resolve,reject){
// resolve 函数 处理异步任务成功的结果 resolve('成功')
// reject 函数 处理异步任务失败的结果 reject('失败')
// 异步任务封装
setTimeout(function(){
if(true){
resolve('成功')
}else{
reject('失败')
}
},1000)
})
promise.then(function(result){
result=>成功
})
promise.catch(function(error){
error=>失败
})
promise链式调用 比 回调函数 更好的更优雅的方法处理异步结果 有多个请求,后面请求需要用到前面请求的结果 使用回调函数,会出现回调嵌套(回调地狱问题)
function myPromise(options) {
return new Promise((resolve, reject) => {
ajax({
method: options.method,
url: options.url,
data: options.data,
success: function (result) {
resolve(result)
},
fail: function (error) {
reject(error)
},
})
})
}
let promise = myPromise({
method: 'get',
url: '',
})
promise.then(res => {})
promise.catch(error => {})
myPromise({
method: 'get',
url: '',
}).then(res => {})
.catch(error => {})
Promise三种状态
pending(进行中)、fulfilled(已成功)和rejected(已失败)
状态一旦改变,就不再变化
pending->fulfilled
pending->rejected
localStorage
本地存储 Storage
电脑硬盘 存储化存储数据
电脑内存 临时数据 -电脑关机或者程序终止数据消失
localStorage对象
setItem(key1,value1) // 存储一条数据到localStorage
setItem(key2,value2) // 存储一条数据到localStorage
let value1 = getItem(key1) // 获取localStorage数据
removeItem(key) //移除key对应数据
clear() // 清空所有数据
key 类型 字符串类型
value 字符串
let obj = {name:'jack',age:18}
JSON.stringify(obj)
true -> 'true'
100 -> '100'
浏览器 application选项查看localStorage持久化存储的数据