Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2019 September 19

D

Diana in NodeUA - JavaScript and Node.js in Ukraine
а как потом результат выполнения промиса передать в другие функции?
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
Diana
let userList1=[];
 function init(){
   const data =  fetch(`${URL}?results=${USERS_PER_PAGE}`).then(response => response.json())
    .then(json => {
        console.log(json.results);
        userList1 =  json.results.map(({ name}) => (
            new User(name);))
                return userList1;
          })
    .catch((err) => {
        console.log(err);
    });

}
userList1= await init();
console.log(userList1);

вот пример кода, не могу вернуть список. посоветуйте, пожалуйста, что-то))
1) async function init() 2) const data =  await fetch
источник

D

Diana in NodeUA - JavaScript and Node.js in Ukraine
Yakov
1) async function init() 2) const data =  await fetch
Спасибо, как раз в этом направлении я поняла, но передать в другую функцую данные не могу...
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
важно чтобы Ваша функция init делала return userList1
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
по-моему она сейчас этого не делает, а просто присваивается userList1 =  json.results.map(({ name}) - тут в map может тоже async понадобиться, а далее еще return userList1
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
либо скобочка потерялась
источник

D

Diana in NodeUA - JavaScript and Node.js in Ukraine
она сейчас возвращает его
после функции я так написала, верно я понимаю?
let prom =  init();
prom.then(i=>console.log(i))
тут консоль пишет undefined
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Dan The Great 🔥
Перед функцией обьяви data и в нее запиши результат из функции
Это очень плохой подзод в данном конкретном случае
источник

DT

Dan The Great 🔥 in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Это очень плохой подзод в данном конкретном случае
почему?
const data = async () => {return fetch...}
data[field].....
источник

DT

Dan The Great 🔥 in NodeUA - JavaScript and Node.js in Ukraine
не коллбеками же делать
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Dan The Great 🔥
почему?
const data = async () => {return fetch...}
data[field].....
потому, что один вызов функции getUser должен быть независим от другого
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Чтоб их можно было одновременно много запускать
источник

D

Diana in NodeUA - JavaScript and Node.js in Ukraine
у меня не получается, чтобы данные промиса отображались...let prom =  init();
prom.then(i=>console.log(i))
 результат консоли undefined
источник

E

Egor in NodeUA - JavaScript and Node.js in Ukraine
потому что ты ничего из функции не возвращаешь
источник

D

Diana in NodeUA - JavaScript and Node.js in Ukraine
Egor
потому что ты ничего из функции не возвращаешь
return userList1;  я добавила скобочки
источник

DT

Dan The Great 🔥 in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
потому, что один вызов функции getUser должен быть независим от другого
а, понял, функция может быть экспортчена и быть вызвана в другом участке проекта, поэтому нужно добавлять в нее контекст, правильно?
источник

DT

Dan The Great 🔥 in NodeUA - JavaScript and Node.js in Ukraine
просто обычно такие функции делают для повышения читабельности, чтобы отдельно выделить промежуток кода, где получаешь юзера
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
Диана, console.log(json.results); - в теле then возвращает данные норм ? Код лучше выкладывать гдето, где форматирование видно норм
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
ну или скриншотом продублируй на крайний случай, чтоб было понятно, какой код у тебя  в данный момент
источник

Y

Yakov in NodeUA - JavaScript and Node.js in Ukraine
выведи также userList1 в then в консоль перед return - а то сложно понять что вообще сделать пытаешься
источник