我目前正在努力从链式事件中返回一个值,导致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));
答案 0 :(得分:1)
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));
第二个.then()函数返回一个新的promise,所以你需要再次链接.then()函数才能获得promise(resolve)返回的确切值
其他方法是在数量变量上使用.then()函数,该变量包含由2nd .then()函数返回的承诺
quantity.then((res)=> console.log(res))