如何将回调转换为承诺? [复制]

Posted

技术标签:

【中文标题】如何将回调转换为承诺? [复制]【英文标题】:how to covert callbacks to promise? [duplicate] 【发布时间】:2020-06-02 14:09:23 【问题描述】:

我有下一个代码

paypal.payment.create(create_payment_json, function (error, payment) 
        if (error) 
            throw error;
         else 
            for(let i = 0;i < payment.links.length;i++)
              if(payment.links[i].rel === 'approval_url')
                res.send(link:payment.links[i].href);
              
            
        
);

我需要将其转换为承诺:

const  links  = await paypal.payment.create(create_payment_json);

【问题讨论】:

here you are 注意你的代码不能多次调用res.send() 我知道,这是代码示例。 【参考方案1】:
const PaypalPromise = module.exports;

const Paypal = require('paypal-rest-sdk').configure(
  mode: 'sandbox',
  client_id: 'your id',
  client_secret: 'your secret',
);

PaypalPromise .create = (pay) => new Promise((resolve, reject) => 
  Paypal.payment.create(pay, (error, payment) => 
    if (error) return reject(error);

    return resolve(payment);
  );
);

【讨论】:

以上是关于如何将回调转换为承诺? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 `this` 将事件回调转换为承诺携带上下文

如何将我的代码从回调函数更改为承诺 [重复]

如何在回调结束时获得通知承诺所有回调样式[重复]

如何将改造回调响应中的回调从 java 转换为 Kotlin

蓝鸟承诺“promisifyAll”不起作用 - 无法读取属性“then”

如何使用 PromiseKit 重构快速回调以承诺