JS Promise <pending>返回

时间:2018-06-06 17:35:43

标签: javascript node.js shopify es6-promise

我目前正在努力从链式事件中返回一个值,导致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 :(得分: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))