如何在promise的rejectCallback函数中编写catch语句?
可以还是应该这样写?在这种情况下,Promise的对象将需要在拒绝函数中传递。这样做的方式是什么?
如果没有,那么如果必须分别编写.catch
语句,那么rejectCallback的最佳用途是什么?
function fileFunction() {
console.log("In fileFunction:")
// open file
let objPromise = new Promise((resolve, reject) => {
objFs.open('nehw.js',
'r',
(argError, argFD) => {
if (argError) {
reject(new Error("File not found!"), 1000);
} else {
resolve("File found!", 1000);
}
}
)
});
objPromise.catch((argError) => {
console.error(argError)
})
objPromise.then(promiseResolveCallback, promiseRejectionCallback)
}
function promiseResolveCallback( arg )
{
console.log("promiseResolveCallback(): ", arg)
}
function promiseRejectionCallback( arg )
{
console.log("promiseRejectionCallback(): ", arg)
}
答案 0 :(得分:1)
我认为两者都可行,但不确定执行顺序。为了简化,只需使用一种方法-
两个
initialization
或
objPromise.then(promiseResolveCallback, promiseRejectionCallback)
注意:请确保在您的方法中返回结果,使其表现得像上面的resolve,拒绝方法一样。
if (argError) {
reject(new Error("File not found!"), 1000);
} else {
resolve("File found!", 1000);
}
另外,为了防止破坏代码,请将函数放在您的诺言之前,以便它们在调用它们之前就存在。
请参阅参考资料: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then
function promiseResolveCallback( arg ) {
return arg;
}