gpt4 book ai didi

javascript - 如何处理未定义 JSON 上的未捕获类型错误?

转载 作者:行者123 更新时间:2023-12-03 02:10:31 25 4
gpt4 key购买 nike

来自以下代码:

    BlogApp.query.blog.equalTo("objectId", url).find().then(function(blog) {
var model = blog[0];
model = model.toJSON();

if (model == null {
Materialize.toast('This object no long exists!', 4000, 'red');
} else {

BlogApp.fn.renderView({
View: BlogApp.Views.Blog,
data: {
model: model
}
});

BlogApp.blog = blog[0];
}
}
});

我收到以下错误:

blog.js:1119 Uncaught TypeError: Cannot read property 'toJSON' of undefined
at blog.js:1119
at wrappedResolvedCallback (parse-1.2.19.js:3762)
at parse-1.2.19.js:3713
at Array.forEach (<anonymous>)
at Object._.each._.forEach [as _arrayEach] (parse-1.2.19.js:95)
at Parse.Promise.resolve (parse-1.2.19.js:3712)
at Parse.Promise.<anonymous> (parse-1.2.19.js:3766)
at Parse.Promise.wrappedResolvedCallback (parse-1.2.19.js:3762)
at Parse.Promise.then (parse-1.2.19.js:3796)
at wrappedResolvedCallback (parse-1.2.19.js:3765)

基本上,如果 JSON 为空或 null,我想发出警告,但我无法这样做。

如何捕获此错误?

最佳答案

您的 Javascript 无效,该脚本甚至不应该运行,因为: if (model == null {

使用 try-catch。

BlogApp.query.blog.equalTo("objectId", url).find().then(function(blog) {
const model = blog[0];
let jsonModel;
try {
jsonModel = model.toJSON();
} catch (e) {
Materialize.toast('This object no long exists!', 4000, 'red');
return;
}
BlogApp.fn.renderView({
View: BlogApp.Views.Blog,
data: {
model: jsonModel
}
});
BlogApp.blog = blog[0];
});

或者,测试一下 blog[0] 是否存在于开头,尽管这样会捕获更少的错误:

BlogApp.query.blog.equalTo("objectId", url).find().then(function(blog) {
if (!blog[0]) {
Materialize.toast('This object no long exists!', 4000, 'red');
return;
}

关于javascript - 如何处理未定义 JSON 上的未捕获类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49593037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com