Не могу получить доступ к собственности, но через 1 секунду я могу получить к нему доступ (Async & ждать) [дублировать]Javascript

Форум по Javascript
Ответить
Anonymous
 Не могу получить доступ к собственности, но через 1 секунду я могу получить к нему доступ (Async & ждать) [дублировать]

Сообщение Anonymous »

Я хочу сделать свою собственную игру в Vanilla JS, чтобы практиковать свои навыки с Canvas и Vanilla JS. /> Итак, мне нужно получить карту файлов из браузера с помощью Fetch Like: Let getMap = fetch ('./ public/maps/map1.txt')
, поэтому я написал асинхронную функцию, как это : < /p>

Код: Выделить всё

 async loadMap () {
try{
let response = await fetch(this.filePath)
return await response.text();
}catch(e) {
throw new Error(e)
}

}
< /code>
И после этого я собираюсь взять его и написать код, чтобы сделать матрицу n*y, чтобы отобразить ее в браузере.
Это весь код класса карты у этого есть функция loadmap () 
и другая функция, которая выполняет логику.

Код: Выделить всё

class Map {
constructor(filePath , col , row) {
this.filePath = filePath
this.map = null ;
this._initMap(col , row)
}

async _initMap(col , row) {
this.map = await this._getMap(col , row);
console.log("map is inited" , this.map)
}

async loadMap () {
try{
let response = await fetch(this.filePath)
return await response.text();
}catch(e) {
throw new Error(e)
}

}

async _getMap(mapCol , mapRow) {
let array = [...new Array(mapRow)].map(() => new Array(mapCol).fill('#'))
let stringMap = await this.loadMap();
let arrayMap = stringMap.split('').filter(s => !(s == ' ') && !(s == "\r"))
let col = 0 ;
let row = 0 ;
let index = 0 ;
while(row < array.length) {
array[row][col] = arrayMap[index]
col++ ; index ++ ;
if(arrayMap[index] == '\n') {
arrayMap.splice(index , 1);
col = 0 ;row++ ;
}
}
return array
}

}
Как вы можете видеть после инициализации, он собирается установить this.map на матрицу, но это моя проблема! Когда я хочу получить доступ к нему после инициализации, говорит nul>

Подробнее здесь: https://stackoverflow.com/questions/793 ... asyncawait
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»