javascript - 异步等待默认行为
问题描述
如果你有一个 async 函数并且有 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;
}
};
解决方案
不,您不必使用任何承诺,也不必使用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
对象。
推荐阅读
- angular - 角 HttpResponseError; 状态 0
- vb.net - 是否有从多位数字中获取单个数字的功能?
- amazon-web-services - 无法将 ec2 实例导出到 S3
- c - 在C中滚动文本文件
- javascript - 需要在父元素之外创建一个具有overflow-y auto的元素
- eclipse - 在 Eclipse 的 Docker Container 中运行 Build 时没有创建目标的规则
- nvidia - ID3D11Device::CreateTexture3D E_OUTOFMEMORY 用于 16GB NVIDIA Quadro P5000 上的 4GB+ 纹理
- sql-server - 分组到 SQL Server 中的特定列
- awk - 如何在 awk 脚本中进行模式匹配后打印某些内容?
- javascript - 无法使用 Slack 螺栓检测来自多用户选择的操作