我在API后面有一个Lambda,如果未提供正确的参数,则想响应一个错误。我可以使用回调发送消息,但是发送消息时是否可以停止执行?我附上示例代码:
dynamodb.putItem(add_params, function(err, data) {
if (err) callback(null,respond({Success:{BOOL:false},Error{S:JSON.stringify(err)}}));
if (data==null) callback(null,respond({Success:{BOOL:false},Error:{S:"No data in previous step"}}));
callback(null,respond(return_JSON));
});
Run Code Online (Sandbox Code Playgroud)
我本以为Lambda会在响应时终止,但是我收到了几个回调
这里发生的是您正在调用“回调”方法,然后继续。基本上,您if
的错误检查结果为true,将调用回调,但是如果您在其中检查代码,则代码将继续到下一个data == null
。
dynamodb.putItem(add_params, function (err, data) {
if (err) {
callback(null, respond({ Success: { BOOL: false }, Error{ S: JSON.stringify(err) } }));
} else if (data == null) {
callback(null, respond({ Success: { BOOL: false }, Error: { S: "No data in previous step" } }));
} else {
callback(null, respond(return_JSON));
}
});
Run Code Online (Sandbox Code Playgroud)
另一种方法是在回调之后返回。这样做:
if (err){
callback(params),
return;
}
Run Code Online (Sandbox Code Playgroud)
这将使您的程序控件从传递给dynamodb.putItem的回调中返回。
归档时间: |
|
查看次数: |
1042 次 |
最近记录: |