简体   繁体   English

错误:等待仅在异步 function 中有效

[英]error: await is only valid in async function

I keep getting this error "await is only valid in async function".我不断收到此错误“等待仅在异步函数中有效”。 Does anyone know where can be a problem?有谁知道哪里有问题?

$(document).ready(() => {

const getIso = async (latitude, longitude) => {

        let newIso = await $.ajax({
            url: `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${latitude}&lon=${longitude}`,
            lat: latitude,
            lon: longitude,
            datatype: 'jsonv2',
        });
        const iso = newIso.address.country_code;
        console.log(iso); // workds
        return newIso;
    };

    navigator.geolocation.getCurrentPosition(function (position) {
        const latitude = position.coords.latitude;
        const longitude = position.coords.longitude;
        getIso(latitude, longitude);
    });

    let lol = await getIso();
    console.log(lol);

});

Your error is comming from line:您的错误来自以下行:

let lol = await getIso();

because this line is inside this function:因为这条线在这个 function 里面:

$(document).ready(() => {

which is not an async function.这不是异步 function。

await is a reserved word that only works inside async functions await 是一个保留字,仅适用于异步函数

Make your onready function async让你准备好的 function 异步

 $(document).ready(async () => { const getIso = async (latitude, longitude) => { let newIso = await $.ajax({ url: `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${latitude}&lon=${longitude}`, lat: latitude, lon: longitude, datatype: 'jsonv2', }); const iso = newIso.address.country_code; console.log(iso); // workds return newIso; }; navigator.geolocation.getCurrentPosition(function (position) { const latitude = position.coords.latitude; const longitude = position.coords.longitude; getIso(latitude, longitude); }); let lol = await getIso(); console.log(lol); });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM