如何使用javascript处理多个异步函数?
我有一个函数,首先从url获取结果,然后将其放入dynamo db:如何使用javascript处理多个异步函数?,javascript,error-handling,promise,async-await,amazon-dynamodb,Javascript,Error Handling,Promise,Async Await,Amazon Dynamodb,我有一个函数,首先从url获取结果,然后将其放入dynamo db: const result = await fetch(constants.GITHUB_NA_VERSION_NUMBER_URL) .then(res => res.json()) .then((jsonData) => { // jsonData is what i am trying to return }); dyn
const result = await fetch(constants.GITHUB_NA_VERSION_NUMBER_URL)
.then(res => res.json())
.then((jsonData) => {
// jsonData is what i am trying to return
});
dynamoDb.put(
{
"TableName": "tableName",
"Item": {
"A": "A",
"B": "B",
"C": "C",
}
}, function(result) {
result.on('data', function(chunk) {
console.log("" + chunk);
});
});
if ( ! result) {
throw new Error("Item not found.");
}
return result;
当然,放入DB取决于首先得到的结果。
正如您所看到的,这段代码很混乱,没有错误处理。
我希望代码能够:
const errorHandler = (promise) => {
return promise
.then(res => ([res.json(), undefined]))
.catch(error => Promise.resolve([undefined, error]));
};
let [latestVersionNumber, latestVersionNumberErr] = await errorHandler(fetch(constants.GITHUB_NA_VERSION_NUMBER_URL));
console.log(latestVersionNumber);
if (latestVersionNumberErr) throw new Error("Failed to get lastest version number, please try again late.");
log(latestVersionNumber)给了我Promise{}
现在我不得不重写dynamoDB.put函数,因为它已经不起作用了
基本上,我需要处理多个异步函数的错误,如果发生任何错误,它应该立即停止。
我认为dynamoDb.put会返回一个承诺,所以我想我应该将put函数包装成一个自定义异步函数,但不确定如何实现。很明显,我遗漏了一些东西。
提前谢谢。你真的应该跟着。errorHandler
助手非常糟糕。