나는 일을하는 일반적인 방법은DynamoDB API 노드, 결과를 동기식으로 얻을 수 있습니까? 수,
db.query(params, callback);
입니다하지만 알고 어떻게 내가 결과를 얻을 전에 내 람다의 나머지 실행할 수없는 경우에 나는
var data = db.query(params);
처럼 뭔가를 할 수 모든 콜백을하지 않고 그냥 기다려야합니까?
나는 일을하는 일반적인 방법은DynamoDB API 노드, 결과를 동기식으로 얻을 수 있습니까? 수,
db.query(params, callback);
입니다하지만 알고 어떻게 내가 결과를 얻을 전에 내 람다의 나머지 실행할 수없는 경우에 나는
var data = db.query(params);
처럼 뭔가를 할 수 모든 콜백을하지 않고 그냥 기다려야합니까?
Query api에는 동기식 방법이 없습니다. 그러나 Query API에는 Promise
을 사용할 수 있습니다.
약속은 비동기 흐름을 관리하기 위해 콜백 기능을 사용할 수있는 대안을 제공합니다. 비동기 호출을 변수로 처리하여 오류 처리를 단순화하고 비동기 호출의 처리 결과를보다 잘 제어 할 수 있습니다. 쿼리 API를 사용하여
샘플 코드 : -
var table = "Movies";
var year_val = 1992;
var title = "Movie with list attribute";
var params = {
TableName: table,
KeyConditionExpression: 'yearkey = :hkey and title = :rkey',
ExpressionAttributeValues: {
':hkey': year_val,
':rkey': title
}
};
var queryObjectPromise = docClient.query(params).promise();
queryObjectPromise.then(function (data) {
console.log("Query Item succeeded: ", JSON.stringify(data,
null, 2));
}).catch(function (err) {
console.log("Unable to read item. Error JSON: ", JSON.stringify(err, null, 2));
});
내 POV에서 볼 때, 들여 쓰기가 적어 종류는 같습니다. 그러나 나는 이것을 받아 들일 것이다. – LLL
노드 v7.6에서 async-await을 사용하고 지정한 쿼리 메소드의 약속 된 버전을 기다릴 수 있습니다 (들여 쓰기를 전혀 사용하지 않음) – johni
감사합니다! 좋은 제안. 그러나 노드 v6.10.2 LTS는 대부분의 사용자에게 권장되는 버전입니다. – notionquest
아니, Node.js를 프로그래밍 비동기 코드를 처리하는 방법을 배울 필요 의미합니다. – robertklep