JS Promise <Pending>возвращается - PullRequest
0 голосов
/ 06 июня 2018

В настоящее время я борюсь с возвратом значения из связанного события, в результате чего Promise возвращается в состоянии ожидания.

Мой код возвращает массив объектов метаполя для определенного продукта Shopify, который я затем анализируюи хотел бы вернуть целочисленное значение.

Однако, когда я отлаживаю свой код, все, что я получаю, - это обещание в состоянии ожидания, а не исполняемое значение, которое находится в области действия.

Полагаю, это во многом связано с тем, что я не знаком с обещаниями.

Любая помощь очень ценится!

var quantity = shopify.metafield.list({
  metafield: { owner_resource: 'product', owner_id: line_item.product_id }
}).then(metafields => new Promise(function(resolve, reject) { 

    //simplified code   
    resolve(2);
}))
.catch(error => console.log(error));    

1 Ответ

0 голосов
/ 06 июня 2018
shopify.metafield.list({
  metafield: { owner_resource: 'product', owner_id: line_item.product_id }
}).then(metafields => new Promise(function(resolve, reject) { 

    //simplified code   
    resolve(2);
})).then((quantity)=> console.log(quantity))
.catch(error => console.log(error)); 

2nd .then () функция возвращает новое обещание, поэтому вам нужно снова соединить функцию .then (), чтобы получить точное значение, возвращаемое обещанием (resol)

Другой способпросто использовать функцию .then () для количественной переменной, которая содержит обещание, возвращаемое функцией 2nd .then ()

quantity.then((res)=> console.log(res)) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...