node.js - NodeJS等待解决的承诺
问题描述
一段时间以来,我一直无法正常使用 Promises。我在 Promise 中使用了另一个。预期结果:1、2、3、4 实际结果:1、2、4、3
api.get("orders/2049103")
.then(({data}) => {
userPayload.number = data.number;
userPayload.first_name = data.billing.first_name;
userPayload.last_name = data.billing.last_name;
userPayload.email = data.billing.email;
console.log(1);
return data;
})
.then((data) => {
console.log(2);
let productInfo = {};
productInfo.id = data.line_items[0].product_id;
productInfo.name = data.line_items[0].name;
api.get(`products/${productInfo.id}`)
.then(({data}) => {
productInfo.downloads = data.downloads;
console.log(3);
})
return productInfo
})
.then(() => {
console.log(4);
})
解决方案
Problem solved, thanks @bergi!
api.get("orders/2049103")
.then(({data}) => {
userPayload.number = data.number;
userPayload.first_name = data.billing.first_name;
userPayload.last_name = data.billing.last_name;
userPayload.email = data.billing.email;
userPayload.downloads = [];
console.log(1);
return data;
})
.then((data) => {
console.log(2);
let productInfo = {};
productInfo.id = data.line_items[0].product_id;
productInfo.name = data.line_items[0].name;
return api.get(`products/${productInfo.id}`)
.then(({data}) => {
productInfo.downloads = data.downloads;
userPayload.downloads.push(productInfo);
})
})
.then(() => {
console.log(userPayload);
})
推荐阅读
- java - 如何分块读取大型 Json 文件
- graphql - PostGraphile - exportGqlSchemaPath 将主 uuid 列从 id 重命名为 rowId?
- c# - 在 Azure DevOps 管道中包含本地 dll
- javascript - 使用自定义钩子创建类似商店的 redux
- linux - 错误的完整快照版本,应为 '71bf5.... 发现 'aec28...' Dart 编译器意外退出
- sql - Scala 模式匹配 - 识别 Java.Sql 中的连接(基础设施)异常和数据(查询)异常
- mongodb - $MongoDB $lookup foreach 同一集合上数组中的元素
- python - 从两个 numpy 数组中创建一个新数组
- datetime - 如何使用 jest 将带有 Date 的 expect.toMatchObject() 作为预期属性值之一传递?
- powerbi - Power BI - 使用参考表进行合并