我正在嘗試通過 AJAX 回傳值。下面是我根據我發現的一些示例組合在一起的代碼,它似乎有效,但我認為有更好的方法嗎?
(async () => {
const url = new URL("/ajax-page", window.location.origin);
const headers = new Headers([
[
"Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8"
]
]);
const body = new URLSearchParams([
["sl", slug]
]);
const res = await fetch(url, {
method: "POST",
headers,
body
});
if (res.ok) {
let mkr = await res.text();
crd = mkr.split("|");
lat = crd[0],
lon = crd[1];
console.log(lat ' ' lon);
}
})();
PHP(ajax頁面)
// php magic gets values
echo $mar['lat'].'|'.$mar['lon'];
我什至需要使用(async () => {...})(); 了?
uj5u.com熱心網友回復:
這些線路:
lat = crd[0],
lon = crd[1];
不是變數宣告(因為沒有let關鍵字)。它使用逗號運算子,因此等效于:
lat = (crd[0], lon = crd[1])
逗號運算子回傳第二個運算式的值,因此lat和lon都被設定為crd[1]。
這個問題的原因是你用;而不是結束了前兩行,。整個宣告應該是:
let mkr = await res.text(),
crd = mkr.split("|"),
lat = crd[0],
lon = crd[1];
如果您使用 IDE 的自動縮進功能,它將表明這不是您想要的分組方式。
uj5u.com熱心網友回復:
await只能在異步函式中使用。你無法避免它。異步函式隱式回傳一個承諾,因此其他異步函式可以等待它們的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338070.html
標籤:javascript 阿贾克斯
上一篇:VBA拋出錯誤中的簡單浮點運算
