我可以对放置和删除请求使用带提取的条件吗?
Can I use a conditional with fetch for both a put and delete request?
我的代码编辑器说出了点问题...是因为我写得不好还是不可能有不同请求的 if 语句?
changeLikeCardStatus(cardId, like) {
return fetch(`${this._baseUrl}/cards/likes/${cardId}`, {
if(like){
method: "PUT",
headers: this._headers
} else {
method: "DELETE",
headers: this._headers
}
}).then((res) =>
res.ok
? res.json()
: Promise.reject(`Error! ${res.statusText}`).catch((err) =>
console.log(err)
)
);
}```
不要在 fetch 中使用条件,而是在 return 语句之前应用条件,找到需要的方法并在 fetch 中使用该方法。在下面的代码中,我添加了一个语句来使用三元条件获取方法名称。请根据语言修改,试试是否正常
changeLikeCardStatus(cardId, like) {
methodName = like?"PUT":"DELETE";
return fetch(`${this._baseUrl}/cards/likes/${cardId}`, {
method: methodName,
headers: this._headers
}).then((res) =>
res.ok
? res.json()
: Promise.reject(`Error! ${res.statusText}`).catch((err) =>
console.log(err)
)
);
}
我的代码编辑器说出了点问题...是因为我写得不好还是不可能有不同请求的 if 语句?
changeLikeCardStatus(cardId, like) {
return fetch(`${this._baseUrl}/cards/likes/${cardId}`, {
if(like){
method: "PUT",
headers: this._headers
} else {
method: "DELETE",
headers: this._headers
}
}).then((res) =>
res.ok
? res.json()
: Promise.reject(`Error! ${res.statusText}`).catch((err) =>
console.log(err)
)
);
}```
不要在 fetch 中使用条件,而是在 return 语句之前应用条件,找到需要的方法并在 fetch 中使用该方法。在下面的代码中,我添加了一个语句来使用三元条件获取方法名称。请根据语言修改,试试是否正常
changeLikeCardStatus(cardId, like) {
methodName = like?"PUT":"DELETE";
return fetch(`${this._baseUrl}/cards/likes/${cardId}`, {
method: methodName,
headers: this._headers
}).then((res) =>
res.ok
? res.json()
: Promise.reject(`Error! ${res.statusText}`).catch((err) =>
console.log(err)
)
);
}