我在網頁上有以下 JS。
<script async type="module">
import {projectCode} from "./assets/js/config.js";
import {getProject} from "./assets/js/saleproject.js";
import {getAccount} from "./assets/js/account.js";
import Vue from 'https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.esm.browser.js'
let projectData = await getProject(projectCode);
...
</script>
然后將資料存盤在 Vue.js 中以呈現頁面。對于進一步的背景關系,上面參考了單獨檔案中的以下代碼:
import { server } from './config.js';
export async function getProject(projectCode) {
const response = await fetch(server '/saleproject/GetByCode/' projectCode);
const projectData = await response.json();
return projectData;
}
一切正常,除了在 iPhone 上,我收到以下錯誤,這會破壞我的代碼并阻止 Vue.js 呈現頁面:
SyntaxError: Unexpected identifier 'getProject'. Expected ';' after variable declaration.
我曾嘗試將它包裝在這樣的異步函式中,但仍然沒有運氣:
(async function () {
let projectData = await getProject(projectCode);
}())
回傳與 Vue.js 相關的錯誤:
Error in data(): "ReferenceError: projectData is not defined"
我不確定需要更改什么才能在 iPhone 上正常作業(在桌面 Safari 中作業正常)
uj5u.com熱心網友回復:
您嘗試的解決方案是正確的,唯一的問題let是范圍僅限于 IIFE 范圍。
重新撰寫您的代碼,如下所示:
getProject(projectCode).then(projectData => {
// All code goes here
});
問題原是由于缺乏頂級等待支持引起的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338442.html
標籤:javascript Vue.js 异步等待
