同步node.js调用

时间:2018-09-02 18:01:58

标签: node.js aws-sdk

我正在编写我的第一个“真实” AWS Lambda应用程序,并且需要同步几个调用。我正在调用的方法似乎没有“同步”版本。

具体地说,我想调用Dynamo,然后使用从JSON解析的数据发出http请求。

设置好之后,这是我正在使用的Dynamo电话...

dynamoDb.get(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        url = parse(data);
        console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
    }
});

然后我使用该网址调用http请求...

http.get(url,function(res){
    res.on('error', function(err){
        console.log(err);
    });

    res.on('data',function(d){
        console.log("received more chunks");
        chunks += d;
    });

    res.on('end',function(){
        console.log("http request complete");
    })
}

问题似乎是第二个呼叫没有等待第一个呼叫。我已经研究过使用异步/等待,但是我不确定如何将它们与错误处理回调一起使用。我在网上发现的示例太笼统,难以理解,或者没有错误处理就很具体。

知道我如何同步这两个吗?

1 个答案:

答案 0 :(得分:0)

暂时忽略异步/等待,您是否尝试过:

const arr = [129, 139, 155, 176];

// sum all the elements of the array
const sum = arr.reduce(function (accumulator, currentValue){
  return accumulator + currentValue;
});

const average = sum / arr.length;

console.log(average);