gpt4 book ai didi

node.js - Serverless框架不能使用promise?

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:35 25 4
gpt4 key购买 nike

我正在尝试使用无服务器框架制作 REST api。

一些功能是异步的。

所以我正在使用Promise

但是 promise 不起作用(没有响应)

因此,我使用 await 关键字。效果很好。

我认为这是不好的方法。如何在 Serverless 框架中使用 Promise?

如有任何意见或建议,我们将不胜感激。预先感谢您。

最佳答案

您可以通过多种方式使用 Promise。就个人而言,将 promise 分离到另一个函数中。

我用请求模块做了一个例子:

const request = require("request");

// The promise
const requestPromise = (url, options) =>
new Promise((resolve, reject) => {
options = options || {};
const processRequest = (err, response) => (err ? reject(err) : resolve(response));
request(url, options, processRequest);
});


// You can use like this
module.exports = (event,context) => {
let url = event.url;
requestPromise(url)
.then(response => {
// Do something
context.succeed({succeed: true /* put return data here */})
})
.catch(details => context.fail({error: true, details: details}));
}

// Or this
module.exports = async (event,context) => {
try {
let url = event.url;
let response = await requestPromise(url);
// Do something
context.succeed({succeed: true /* put return data here */});
} catch (details) {
context.fail({error: true, details: details});
}
}

如果使用 async/wait,则需要添加 try/catch 来处理错误。

关于node.js - Serverless框架不能使用promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53645757/

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