异步等待默认行为

时间:2018-10-08 19:14:59

标签: javascript async-await

如果您具有异步功能并具有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;
}
};

1 个答案:

答案 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对象。