【发布时间】:2019-01-08 17:03:57
【问题描述】:
我尝试使用无服务器框架,现在我有 2 个文件:
- server.js => 处理与 monggoDB 的连接
- handler.js => 这将处理从无服务器框架到 lambda 的函数
我想先从 server.js 获取结果,然后再运行下一步。
我正在尝试使用 await 将结果保存到变量中, handler.js 中的进程将同步运行,但 startServer() 结果未定义
// server.js
const mongoose = require('mongoose');
const dbHost = require('../config/keys').mongoURI;
module.exports = async () => {
mongoose.Promise = global.Promise;
mongoose.set('useFindAndModify', false);
return await mongoose
.connect(
dbHost,
{ useNewUrlParser: true }
)
.then(res => {
console.log('MongoDB Connected', res);
return res;
})
.catch(err => {
console.error(err);
console.error('MongoDB Not Connected');
return err;
});
};
// handler.js
const startServer = require('./db/server');
module.exports.hello = async (event, context) => {
let tryConnect = await startServer();
console.log('server is running', tryConnect);
return { statusCode: 200, body: JSON.stringify(tryConnect) };
};
如何从嵌套的 async-await 中正确获取 await 的结果?
谢谢
【问题讨论】:
标签: javascript async-await es6-promise serverless-framework