Demuz
Ладно, заранее извиняюсь за флуд.
Nick
А как вообще дебажить приложения на react-native? Как его открыть с панелью разработчика от WebKit?
для дебага круто использовать Reactotron https://infinite.red/reactotron, особенно если юзаете redux
Erik
axios. как можно изменить global переменную в блоке .then(global user = data.data) ?
Anonymous
Если это не кс:го
Sergey
axios. как можно изменить global переменную в блоке .then(global user = data.data) ?
знакомая задача, это асинхронный запрос 🙂
Sergey
поэтому либо используй await
Sergey
либо дальше в then все прокручивай
Sergey
подозревая твой вопрос- без await никак
Anonymous
Sergey
ну и соответственно блок внутри функции async, далее try {} catch(error){}
Sergey
в какой-то степени да, здесь речь идет об асинхронности, которая идет после выполнения осовного кода, инициализации переменных, например математических функций и тп
Erik
знакомая задача, это асинхронный запрос 🙂
проблема в том, что требуется время для ответа от сервера ? в этом суть ?
Sergey
проблема в том, что требуется время для ответа от сервера ? в этом суть ?
это сложно осознать, например после пхп, примерно - да, просто такой асинхронности в Реакте и JS  c 2015 года оч много
Sergey
и выходит, что ты делаешь глобальную переменную, которая уже проинициилизрованна до этого и старый код не может ее подхватить
Sergey
а когда ты делаешь await ты стопишь исполнение программы, пока не завершится запрос, таким образом ты апдейтишь следующий блок в привычном режиме
Sergey
await кажется в 2017 в начале появился
Sergey
просто let a = await axios(..).then((data) => return data)
Sergey
(примерно)
Sergey
или this.a = ... - получаешь глобальную переменную
Sergey
но стопишь весь скрипт и запрос становится как бы синхронным 🙂
Erik
Спасибо за объяснение, оказались пробелы в синх / асинх.
Sergey
ага 🙂 нет проблем
Erik
ага 🙂 нет проблем
Трабл с Promise.solved(). Я жду в ответе мой словарь, но получаю Promise. Можно ли его заблокировать ? Т.е. чтобы Promise не возвращался. https://gist.github.com/ersul4ik/1e9f8c27533271c139417f6cbd1d151c
Erik
Либо достать только [[ PromiseValue ]]
Anonymous
а когда ты делаешь await ты стопишь исполнение программы, пока не завершится запрос, таким образом ты апдейтишь следующий блок в привычном режиме
Тоесть await стопит поток? Где про это почитать можно? Просто вникаю в ассинхронность там грят типо вот поток не стопится и тд, памаги
Anonymous
Стопит поток может когда запрос вернулся?
Sergey
он не стопит, он заставляет ждать 🙂
Sergey
пока выполнение пройдет
Anonymous
Или код работает дальше а по возвращению влезает в тот момент когда стек очистится
Sergey
код, который внутри выполнится
Sergey
async receiveAll() { чую ошибку 🙂
Sergey
и она в порядке выполнения, функция то у тебя синхронная, которая this.todos возвращает, те там нулевой результат будет
Sergey
Или код работает дальше а по возвращению влезает в тот момент когда стек очистится
у тебя как бы 2 потока, один - основной код, второй - код в асинхроне, await ждет закрытия второго потока и стопит выполнения кода, если бы await не было то стоп не происходил бы, по сути await отрубает асинхронность, что не всегда гуд 🙂
Sergey
вернее даже не отрубает, просто стопит основной поток
Anonymous
окей а промисы
Anonymous
создаешь промис, в нем пишешь код который будет когда выполняться?
Anonymous
именно внутри промиса
Sergey
по цепочке
Sergey
then(1).then(2) и тп
Sergey
соответственно возврат then((data1)=> return data1).then((data1) => return data2)
Sergey
механизмы разные работы у await и then - promise, хоть их и можно совмещать 🙂
Erik
Erik
Извиняюсь за тупость. Но Я не пойму, имеется ли возможность избавить от Promise dict{}
Sergey
значит в then идет переменная, которая в промис не отрабатывается
Sergey
а где в коде promise dict?
Erik
а где в коде promise dict?
в коде нет его, я его не описывал
Sergey
await dict() 🙂
Sergey
then - это уже promise
Sergey
только в fetch он уже инициализирован
Sergey
var promise = new Promise(function(resolve, reject) {}
Sergey
promise.then(onFulfilled, onRejected)
Sergey
axios.then() - тк axios уже Promise
Sergey
onFulfilled – функция, которая будет вызвана с результатом при resolve.
Sergey
удобнее писать arrow - () => {}
Erik
Erik
моя переменная имеется в Promise. Возникает вопрос как достать её (PromiseValue) ?
Sergey
.then(()=>{let a = 1; return a}).then((a)=>console.log(a))
Sergey
моя переменная имеется в Promise. Возникает вопрос как достать её (PromiseValue) ?
и если стрелку рядом с promisevalue нажать, что отображается?
Erik
this.todos
Sergey
ну все ок, когда получаешь this.doc возвращай через return и с помощью await идет в основной код 🙂
Sergey
у тебя видимо return нет в then
Erik
Только вопрос остался как мне "распарсить" Promise в представлении? Чтобы отобразить данные.Так как прилетает dict{}. В котором мне нужен только [ [ PromiseValue ] ] ?
I 𓃰
Кинь код
Erik
сейчас
Erik
https://github.com/ersul4ik/todolist/tree/master/src
Erik
пытался как можно понятней комментировать
Aleksei
Ребят, простите что прерываю вашу беседу, но это офтоп, попрошу либо в личку, либо в @js_ru, RN специфики вообще не касается
Nick
+ поставил windowSize={10} - самое главное свойство для оптимизации списка
Anonymous
Поцаны какие вам нравятся стили структурирования?
Demuz
Что-то не впечатлил Express24, ожидал большего. Охренитьельно долгое время загрузки приложения, долгое время отклика нажатий на табы и ещё куча прочих проблем. 😢 Эххх.
Артемий
Посоветуйте книгу по реакт нэйтив самую свежую
Sergey
Посоветуйте книгу по реакт нэйтив самую свежую
на русском нет, на английском мало, но есть 🙂
Sergey
тут вопрос скорее не свежести, а содержания 🙂