gpt4 book ai didi

javascript - 在这种情况下如何使用 bluebird Promise?

转载 作者:行者123 更新时间:2023-12-02 15:56:00 26 4
gpt4 key购买 nike

我有这段代码,我正在尝试使其工作,但到目前为止, promise 似乎非常令人困惑。我做了一些研究, bluebird 的 promise 似乎更灵活。你们有什么经验吗?也许可以展示一下如何处理这段代码。

这是代码:

                var invoicesList;
var getInvoices = stripe.getInvoiceList('cus_id', function(err, callback){
if (err) {
invoicesList = "An error happened";
}else{

invoicesList = callback.data;
};
});
console.log(invoicesList); //Undefined result

提前致谢

最佳答案

您的部分问题是您不理解异步响应的含义。这意味着数据将在将来的某个时候可用,并且您可以可靠地访问该数据的唯一位置是在提供结果的回调函数内。您最后一个 console.log(invoicesList) 语句实际上是在调用回调之前执行的。异步回调在未来某个不确定的时间被调用。您必须在回调中使用它们的数据。

<小时/>

这是一个 promise 异步方法,然后使用该新方法通过 promise 获取结果的示例:

var Promise = require('bluebird');
var getInvoiceList = Promise.promisify(stripe.getInvoiceList);

getInvoiceList('cus_id').then(function(data) {
// you can use the result data here
console.log(data);
}, function(err) {
// process an error here
});
// you cannot use the result here because this executes before the
// async result is actually available

关于javascript - 在这种情况下如何使用 bluebird Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com