AWS Lambda - NodeJS - 嵌套等待/异步不返回
AWS Lambda - NodeJS - nested Await / Async not returning
有这个小的 Lambda 函数:
module.exports.handler = async( data , ctx, cb) => {
console.log("start");
createSth();
};
async function resolveAfter2Seconds(x) {
console.log("in function: " + x);
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function createSth() {
var x = await resolveAfter2Seconds(10);
console.log(x); // 10
}
我会输出以下输出
start
in function: 10
10
但我只得到
start
in function: 10
因此var x = await resolveAfter2Seconds(10);
之后的所有内容都不会执行。
它在 aws lambda 之外以类似的设置工作。
谢谢。
调用createSth
函数时添加await
关键字。这将允许 main 函数等待函数的执行,而不会 return
即
module.exports.handler = async( data , ctx, cb) => {
console.log("start");
await createSth();
};
有这个小的 Lambda 函数:
module.exports.handler = async( data , ctx, cb) => {
console.log("start");
createSth();
};
async function resolveAfter2Seconds(x) {
console.log("in function: " + x);
return new Promise(resolve => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
async function createSth() {
var x = await resolveAfter2Seconds(10);
console.log(x); // 10
}
我会输出以下输出
start
in function: 10
10
但我只得到
start
in function: 10
因此var x = await resolveAfter2Seconds(10);
之后的所有内容都不会执行。
它在 aws lambda 之外以类似的设置工作。
谢谢。
调用createSth
函数时添加await
关键字。这将允许 main 函数等待函数的执行,而不会 return
即
module.exports.handler = async( data , ctx, cb) => {
console.log("start");
await createSth();
};