如果您具有异步功能并具有await语句。它在Mozilla文档中指出:“如果await运算符后面的表达式的值不是Promise,它将转换为已解析的Promise。”无论如何,有没有要重写的方法,即从表达式或空对象返回false来表示所有操作均未按计划进行-还是必须将stringify功能包装在promise语句中?
async function sortOutString(string) {
const result = await stringify(string);
return result;
}
function stringify(str) = {
try {
const obj = JSON.parse(str);
return obj;
} catch (e) {
return e;
}
};
答案 0 :(得分:1)
否,您不必使用任何承诺,也不必使用async
/ await
。您似乎正在寻找
function sortOutString(string) {
try {
const result = stringify(string);
return result;
} catch(err) {
return false; // or an empty object, or whatever you want
// ^^^^^^ to indicate that not all did go as planned
}
}
function stringify(str) {
const obj = JSON.parse(str);
return obj;
}
以前,您是在返回err
对象。