我有以下代码:
function promise3() {
return new Promise((resolve, reject) => {
function1().then(() => {
resolve();
}).catch(err => {
reject(err);
console.log("after error");
});
})
}
promise3().catch(e => {
console.log(e);
});
function1
返回一个承诺。但是当function1
失败并返回错误时。我在错误的console.log之前看到console.log("after error")
。尽管reject
之后的代码无法运行。 reject
就像一个回报。那么这是怎么回事?
答案 0 :(得分:-1)
如果您不想在解决/拒绝后执行任何操作,则需要按以下步骤返回它们。
function promise3() {
return new Promise((resolve, reject) => {
function1().then(() => (
resolve(); //change the brackets to () instead of {}
)).catch(err => {
return reject(err); //put a return keyword in front
console.log("after error");
});
})
}
promise3().catch(e => {
console.log(e);
});
()
:表示您要返回里面的东西。
{}
:表示您需要执行以下任务,如果没有return语句,则什么也不返回。