使用fetch in函数的javascript未定义值

使用fetch in函数的javascript未定义值,javascript,async-await,Javascript,Async Await,如果我调用此函数: async function delete_get_note() { let query = { 'command': 'delete_get_content', 'note_id': input_note_id.value } let response = await fetch( '../api/api.php', { method:

如果我调用此函数:

async function delete_get_note() {
    let query = {
        'command': 'delete_get_content',
        'note_id': input_note_id.value
    }

    let response = await fetch(
            '../api/api.php',
            {
                method: 'POST',
                headers: {'Content-Type': 'application/json;charset=utf-8'},
                body: JSON.stringify(query)
            }
        );

    let result = await response.json();

    log.innerHTML = result.log;
}
async function json_exchange(object) {
    let response = await fetch(
        '../api/api.php',
        {
            method: 'POST',
            headers: {'Content-Type': 'application/json;charset=utf-8'},
            body: JSON.stringify(object)
        });

    return await response.json;
}
log
显示我的服务器返回的json的内容。但是,如果我尝试将对
fetch
的调用封装在函数中:

async function delete_get_note() {
    let query = {
        'command': 'delete_get_content',
        'note_id': input_note_id.value
    }

    let response = await fetch(
            '../api/api.php',
            {
                method: 'POST',
                headers: {'Content-Type': 'application/json;charset=utf-8'},
                body: JSON.stringify(query)
            }
        );

    let result = await response.json();

    log.innerHTML = result.log;
}
async function json_exchange(object) {
    let response = await fetch(
        '../api/api.php',
        {
            method: 'POST',
            headers: {'Content-Type': 'application/json;charset=utf-8'},
            body: JSON.stringify(object)
        });

    return await response.json;
}
并致电:

async function delete_get_note() {
    let query = {
        'command': 'delete_get_content',
        'note_id': input_note_id.value
    }

    let result = await json_exchange(query);

    log.innerHTML = result.log;
}
然后
log
显示
undefined


当我试图在函数中调用
fetch
时,我犯了什么错误?

您忘了在json调用中添加括号:

return wait response.json

-->

return wait response.json()


提示:您可以使用
TypeScript
检查来轻松检测此类错误:


您忘记在json调用中添加括号:

return wait response.json

-->

return wait response.json()


提示:您可以使用
TypeScript
检查来轻松检测此类错误:


我想您应该返回
response.json()
而不是
response.json
。您也不需要
return wait
您只需
return response.json()
,它将以任何方式返回一个承诺,因为它是一个异步函数。谢谢您的回答和旁注。我想您应该返回
response.json()
而不是
response.json
。您也不需要
return wait
您只需
return response.json()
,它将以任何方式返回承诺,因为它是一个异步函数谢谢您的回答和旁注。是的,就是这样。提示:如果你使用打字脚本检查,你会立即在代码编辑器中发现这个错误。是的,谢谢你的建议。我正在开始学习,还有很多东西要学,但我会记住这一点。是的,就是这样。提示:如果你使用打字脚本检查,你会立即在代码编辑器中发现这个错误。是的,谢谢你的建议。我正在开始学习,还有很多东西要学,但我会记住这一点。