async-await函数:错误消息未传递到catch块

时间:2019-09-10 00:46:47

标签: javascript async-await try-catch

我的await-async函数如下:

    try {
        // Use node-fetch to retrieve data from server
        var response = await fetch(url);
        var json = await response.json();

        // If "error" exists in the returned JSON, 
        // thrown a new Error with a detailed error message.
        // e.g. "Invalid user credentials"
        if(json.hasOwnProperty('error')){
            console.log("FLAG 0");
            var error_desc = json['error_description'];
            console.log("error_desc: ", error_desc);
            throw new Error(error_desc);
        }

        var access_token = json['access_token'];
        console.log("FLAG 1");
        return access_token;
    } catch (err) {
        console.log("FLAG 2", JSON.stringify(err));
        return JSON.stringify({ "Error": err });
    }

问题是我可以到达FLAG 0FLAG 2,但没有打印错误消息。 err仍然是空的。

这是我从控制台输出中得到的。

FLAG 0
error_desc:  Invalid user credentials
FLAG 2 {}

0 个答案:

没有答案