Почему я получаю Uncaught SyntaxError: неожиданное зарезервированное слово?

Я создаю веб-сайт, используя API метамаски ethereum. Но по какой-то причине я получаю эту ошибку в строке 8:
const provider = await detectEthereumProvider();
Дело в том, что я скопировал этот код прямо с сайта API, поэтому я не знаю, почему он получает ошибку< br /> https://docs.metamask.io/guide/ethereum-provider.html#using-the-provider
Кто-нибудь может помочь? Спасибо


person ComplexEeno    schedule 18.09.2020    source источник
comment
Вы пишете await в неасинхронной функции?   -  person adiga    schedule 18.09.2020
comment
В документации, которую вы связали, они действительно используют ожидание вне асинхронной функции. Странный. Вы можете попробовать скопировать файл записи внутри асинхронного IIFE (async function() { const provider = await detectEthereumProvider(); // rest of the code })()   -  person adiga    schedule 18.09.2020


Ответы (1)


Ключевое слово await должно вызываться внутри асинхронная функция:

async function main()
{
    // Place your code here.
}
// Then, call that async function that wraps your code:
main();
person Lonnie Best    schedule 18.09.2020
comment
Спасибо, но теперь я получаю другую ошибку. В нем говорится, что ссылка из строки 5 документа, на который я ссылаюсь, должна начинаться с /. Но когда я пытаюсь это сделать, VScode больше не распознает ссылку. Uncaught TypeError: Failed to resolve module specifier "@metamask/detect-provider". Relative references must start with either "/", "./", or "../". - person ComplexEeno; 18.09.2020
comment
Я бы разместил это в другом вопросе, потому что у него будет отдельный ответ, которого я не знаю. - person Lonnie Best; 18.09.2020