объясните, почему это решение не вернет обещание? JS - PullRequest
0 голосов
/ 16 апреля 2020

Я не могу понять, почему это не сработает, первый пример работает отлично. Повторение того же метода разрешения для второго примера не работает? Я попробовал все в документации и не могу понять, почему, он всегда возвращает пустой {}, и да, это прекрасно. Console.logs в локальной функции.

Пример 1 Это прекрасно работает отлично, результат возвращает URL-ссылку в консоли



 function searchStockx(searchText){ 
    return new Promise((resolve, reject) => {
        request({
        method: "POST",
        url: "https://xw7sbct9v6-dsn.algolia.net/1/indexes/products/query",
        headers: stockxheaders,
        qs: stockxalgolia,
        json: {"params":"query=" + searchText + "&facets=*&filters="}
      },
        function(err, res, body){

        let stockXurl = body.hits[0].url
        resolve(stockXurl)

    })
})
}                 
   app.post('/', (async(req, res) => {
   searchText = (req.body.input)
   result = await searchStockx(searchText)

   res.send(result



}))

Пример 2 То же разрешение, что и выше, только разные переменные, возвращает пустой {} (не определено) в терминале



function getGoatSize(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 json = JSON.parse(body)
            let goatSizes = json.availableSizesNewV2
            let goatPic = json.pictureUrl




            resolve(goatPic)

            })
        })
 }


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



}))

...