1 回答
TA贡献1876条经验 获得超7个赞
如果问题是,你必须把你fetch
在一个单独的async
功能,答案是否定的,你不具备对。它可能对你有用,但你没有必要。正如你所说,如果你直接等待fetch
承诺,那将结束你的async
路由回调的同步部分。
我的问题是,如果这个函数(在我的代码示例中为“fetchCall”)必须是异步的。
不,它没有。它甚至不必返回承诺,因为您可以使用await
任何值。例如,以下按顺序记录 A、B、C、D 和 E:
async function foo() {
console.log("B");
await 42;
console.log("D");
}
console.log("A");
foo()
.then(() => {
console.log("E");
})
.catch(error => {
console.error(error);
});
console.log("C");
在你的情况下,当然,你想返回一个承诺。:-) 这会起作用:
function fetchCall(URL, bodyJson, wpToken) {
return fetch(URL, {
method: "POST",
credentials: "same-origin",
headers: {
"Authorization": "Bearer " + wpToken,
"Content-Type": "application/json",
"Accept": "application/json"
},
body: bodyJson
})
.catch(error => ({status:544, error:error}));
}
也就是说,async/的优点await是它可以使用我们熟悉的同步代码中的分支和循环结构编写异步代码......
添加回答
举报