gpt4 book ai didi

javascript - 进行 API 调用等待

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:12 24 4
gpt4 key购买 nike

我有这个代码:

function createPlan(amount) {
return stripe.plans.create({
product: 'DigitLead website evaluation tool',
nickname: 'DigitLead website evaluation tool monthly charge',
currency: 'cad',
interval: 'month',
amount: amount,
});
}

var product = stripe.products.create({
name: 'DigitLead website evaluation tool monthly charge',
type: 'service',
});

console.log(time);
if (time === '1') {
var amount = 1499;
var days = 30;
var plan = createPlan(1499);
}
else if (time === '3') {
amount = 999 * 3;
days = 90;
plan = createPlan(999);
}

plan.then(p => console.log("p " + p));
if (typeof req.user.stripeId === undefined) {
var customer = stripe.customers.create({
email: req.user.username,
source: req.body.stripeToken,
});
}

看起来不错,但问题是,这段代码是异步的。因此,当我尝试使用 product 变量创建 plan 时,它不存在。

我可以使用then链接,但它会很困惑。我试图通过添加 await 来完成它,如下所示:

var product = stripe.products.create({
name: 'DigitLead website evaluation tool monthly charge',
type: 'service',
});

,但 Node 只是说:

/home/iron/Documents/Projects/digitLead/routes/payment.js:46
var product = await stripe.products.create({
^^^^^

SyntaxError: await is only valid in async function

我不想使用回调 hell ,所以我真的不知道该怎么做。在普通代码中,我只需编写表示 async 的函数并返回一个 promise 。在这里,我使用Stripe API,所以我无法真正编辑任何内容。

最佳答案

我们只能在异步函数中使用await。因此,您可以将其包装在异步 IIFE 中:

var product = (async(name, type) => await stripe.products.create({
name,
type
}))(name, type);

关于javascript - 进行 API 调用等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50326926/

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