即使使用 try catch 块,也会继续收到 Unhandled promise rejection
Keep getting Unhandled promise rejection even with try catch block
我不断收到以下错误:
UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是在没有 catch 块的情况下在异步函数内部抛出,要么是因为拒绝了一个没有用 .catch() 处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用 CLI 标志 --unhandled-rejections=strict
(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝编号:2)
在查找了一些解决方案之后,我所要做的就是将我的代码放在一个 try catch 块中,您可以在下面看到,但我仍然收到此错误,我做错了什么?
我正在尝试更新列并将其中的所有数组设置为空数组。
Parse.Cloud.job("updateFollowedBy", async (request) => {
try {
var emptyArray = [];
let date = new Date();
let query = new Parse.Query("Categories");
const results = await query.find({useMasterKey:true});
results.forEach(object => {
if (object.get("followedBy")) {
object.set("followedBy", emptyArray);
}
});
Parse.Object.saveAll(results);
return ("Successfully updated column on " + date);
}
catch(e) {
console.log(e);
}
});
未处理的拒绝承诺可能来自 Parse.Object.saveAll()
函数,因为您没有等待它。尝试:
Parse.Cloud.job("updateFollowedBy", async (request) => {
try {
var emptyArray = [];
let date = new Date();
let query = new Parse.Query("Categories");
const results = await query.find({useMasterKey:true});
results.forEach(object => {
if (object.get("followedBy")) {
object.set("followedBy", emptyArray);
}
});
await Parse.Object.saveAll(results);
// You might want to pass { useMasterKey: true } option to make it work without exception:
//await Parse.Object.saveAll(results, { useMasterKey: true });
return ("Successfully updated column on " + date);
}
catch(e) {
console.log(e);
}
});
我不断收到以下错误:
UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是在没有 catch 块的情况下在异步函数内部抛出,要么是因为拒绝了一个没有用 .catch() 处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用 CLI 标志 --unhandled-rejections=strict
(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝编号:2)
在查找了一些解决方案之后,我所要做的就是将我的代码放在一个 try catch 块中,您可以在下面看到,但我仍然收到此错误,我做错了什么?
我正在尝试更新列并将其中的所有数组设置为空数组。
Parse.Cloud.job("updateFollowedBy", async (request) => {
try {
var emptyArray = [];
let date = new Date();
let query = new Parse.Query("Categories");
const results = await query.find({useMasterKey:true});
results.forEach(object => {
if (object.get("followedBy")) {
object.set("followedBy", emptyArray);
}
});
Parse.Object.saveAll(results);
return ("Successfully updated column on " + date);
}
catch(e) {
console.log(e);
}
});
未处理的拒绝承诺可能来自 Parse.Object.saveAll()
函数,因为您没有等待它。尝试:
Parse.Cloud.job("updateFollowedBy", async (request) => {
try {
var emptyArray = [];
let date = new Date();
let query = new Parse.Query("Categories");
const results = await query.find({useMasterKey:true});
results.forEach(object => {
if (object.get("followedBy")) {
object.set("followedBy", emptyArray);
}
});
await Parse.Object.saveAll(results);
// You might want to pass { useMasterKey: true } option to make it work without exception:
//await Parse.Object.saveAll(results, { useMasterKey: true });
return ("Successfully updated column on " + date);
}
catch(e) {
console.log(e);
}
});