链接.然后不依赖先前的结果



我正在使用节点版本6,然后我很少链接。但是,仅第二。然后取决于先前的结果,但其余的。以前的结果不取决于先前的结果。如何链。然后,当它们不依赖以前的结果时。

这是我的代码:

return admin.auth().getUser(phone)
        .then(userRecord => {
            return rp(options)
        })
        .then((orderResponse) => {
            return admin.database().ref('trans/'+ phone)
                .push({  amount: orderResponse.amount })
            })
        .then(() => {
            return admin.database().ref('ord/'+ phone)
                .push({ payment_id })
        })
        .then(() => { 
            return saveThisAddress === true ? 
                admin.database().ref('add/'+phone)
                    .push({address: finalAddress}) : null
        })
        .then(() => {
            return admin.database().ref('dStatus/'+phone+'/'+orderNumber)
                .set({ plan: planName === "" ? "Single Day Plan" : planName, orderStatus: orderStatus,
                }, () => {
                    res.status(200).send({ success:true })
                })
        }) 
        .then(() => {
            return admin.database().ref(`couponCodes/${couponCodeName}`)
                    .update({couponUsage: couponUsage + 1 })
        })
        .then(() => {
            return admin.database().ref(`couponUsage/${phone}`)
                    .update({ [couponCodeName]: usersCouponUsage + 1 })
        })  
    .catch((err) => {
       res.status(422).send({error: err });
    }); 

很少有人说,我正在滥用承诺。我究竟做错了什么 ?如何处理多次。然后,当每个人都不取决于先前的结果?当我使用节点6时,异步/等待在这里无法使用。

请指导

也许一个好主意是利用承诺。所有功能都可以根据节点绿色提供。

在这种情况下,只有第二个承诺取决于第一个诺言,因此一种方法是:

var promise1 = ...
  .then(function(param) { return /* your second promise */})
var promise3 = ...;
var promise4 = ...;
var promise5 = ...;
var promise6 = ...;
Promise.all(promise1, promise3, promise4, promise5, promise6)
  .then(/* once all succeded */)
  .catch(/* if an error occurred */)

最新更新