使用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()
,它将以任何方式返回承诺,因为它是一个异步函数谢谢您的回答和旁注。是的,就是这样。提示:如果你使用打字脚本检查,你会立即在代码编辑器中发现这个错误。是的,谢谢你的建议。我正在开始学习,还有很多东西要学,但我会记住这一点。是的,就是这样。提示:如果你使用打字脚本检查,你会立即在代码编辑器中发现这个错误。是的,谢谢你的建议。我正在开始学习,还有很多东西要学,但我会记住这一点。