asyn c ждут вершины javascript - PullRequest
       5

asyn c ждут вершины javascript

0 голосов
/ 14 апреля 2020

Идея состоит в том, что есть функции, собирающие api с двух сайтов и отправляющие данные по цепочке последней функции, которая затем возвращает данные в app.post для отправки на сторону клиента, но по какой-то причине я продолжаю получать неопределенное значение, есть причина, по которой это не ожидает последней функции?

- top -

app.post('/', async function(req, res) {
    searchText = (req.body.input)
    searchStockx(searchText)
    result = await goatBrow()
    res.send(result)

})

--- Последняя функция, которая разрешает переменную наверх -


async function goatBrow(slug){
    return new Promise((resolve, reject) => { 
     request({
            method: "GET",
            url: "https://www.goat.com/api/v1/product_templates/" + slug + "/show_v2",
            headers: goatGETHeaders
          },
          function(err, res, body){
            let goatSizes = body.availableSizesNewV2
            let goatPic = body.pictureUrl
            goatJoin = {'photo': goatPic, "size": goatSizes,}

            resolve(goatJoin)

            })
      })
}

1 Ответ

0 голосов
/ 14 апреля 2020

Promise объект async, поэтому goatBrow не обязательно должен быть async слишком

async function first() {
    console.log('before goatBrow');
    await goatBrow();
    console.log('after goatBrow');
}


function goatBrow() {
    return new Promise((resolve, reject) => { 
        console.log('before sleep');
        setTimeout(resolve, 8000)
        console.log('after sleep');
    });
}

first();
...