Promise用法
function f1 (name) {
return new Promise((resolve,reject) => {
setTimeout(() => {
if (name === 'first') {
console.log('第一步')
resolve('好的,第一步完了')
} else {
console.log('第一步错了')
reject("失败")
}
}, 1000)
})
}
function f2 (name) {
return new Promise((resolve,reject) => {
setTimeout(() => {
if (name === 'second') {
console.log('第二步')
resolve('好的,第二步完了')
} else {
console.log('第二步错了')
reject("失败")
}
}, 1000)
})
}
f1('ee').then(res=>{
console.log(res)
return f2('first')
}).then(res=>{
console.log(res)
setTimeout(()=>{
console.log('完成')
},1000)
}).catch(err=>{
console.log(err)
})
async用法
function fn () {
return new Promise((resolve,reject) => {
setTimeout(()=>{
console.log('第一步')
// resolve('来了,老弟')
reject('错了,老弟')
},100)
})
}
// (async function () {
// const res = await fn()
// console.log(res)
// console.log('第二步')
// })()
let person = {
say: async ()=>{
const res = await fn()
console.log(res)
console.log('say方法')
},
run: async ()=>{
const res = await fn()
console.log(res)
console.log('run方法')
}
}
var f = async function() {
try{
await person.run()
await person.say()
}catch (e) {
console.warn(e)
}
}
f()
// person.say()
console.log('快快')