// resolve的用法
var p = new Promise(function(resolve,reject){
var timer = setTimeout(function(){
console.log("执行操作1")
resolve("这是数据1")
},1000)
})
p.then(function(data){
console.log(data)
console.log("这是成功操作")
})
// reject的用法
var p = new Promise(function(resolve,reject){
let flag = true
if(flag){
resolve("这是数据2")
}else {
reject("这是数据1")
}
})
p.then(function(data){
console.log(data)
console.log("这是成功的操作")
},function(data){
console.log(data)
console.log("这是失败的操作")
})
//catch方法
var p = new Promise(function(resolve,reject){
let flag = false
if(flag){
resolve("这是成功的数据")
}else {
reject("这是失败的数据")
}
})
p.then(function(data){
console.log(data)
console.log("执行成功方法")
}).catch(function(err){
console.log(err)
console.log("执行失败的方法")
})
//这样嵌套有点多
setTimeout(function () {
console.log('我');
setTimeout(function () {
console.log('爱');
setTimeout(function () {
console.log('米');
setTimeout(function () {
console.log('饭');
}, 1000);
}, 1000);
}, 1000);
}, 1000);
//使用Promise去实现这个效果
function getStr1(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve("我")
},1000)
})
}
function getStr2(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve("爱")
},1000)
})
}
function getStr3(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve("大")
},1000)
})
}
function getStr4(){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve("米")
},1000)
})
}
getStr1().then(function(data){
console.log(data)
return getStr2()
}).then(function(data){
console.log(data)
return getStr3()
}).then(function(data){
console.log(data)
return getStr4()
}).then(function(data){
console.log(data)
})