举个栗子
function Num(success) {
console.log("函数执行了")
setTimeout(function() {
//成功执行Success()函数
if (success) {
Success()
//失败执行Fail()
} else {
Fail()
}
}, 1000)
}
function Success() {
console.log("子函数成功")
}
function Fail() {
console.log("子函数失败")
}
Num(true);
代码耦合太高,换种Promise写法
function Num(success) {
console.log("函数执行了")
//改成Promise写法,传入resolve, reject参数,代表执行成功和失败后执行
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (success) {
resolve()
} else {
reject()
}
}, 1000)
})
}
Num(true)
//resolve()执行then
.then(function() {
console.log("子函数成功");
})
//reject()执行catch
.catch(function() {
console.log("子函数失败");
})
不喜欢then/catch,换个写法,用async/await
//由于用了await,必须定义在async function函数里执行
async function section() {
try {
//await等待 Num的执行结果
await Num(true)
console.log("子函数成功");
} catch (e) {
console.log("子函数失败");
}
}
section();