gpt4 book ai didi

javascript - 模式: How to access object.properties (correctly) from result returned by async function

转载 作者:行者123 更新时间:2023-12-03 08:45:08 25 4
gpt4 key购买 nike

我有一个函数,它从数据库或API指向fetch数据并向其添加属性,如下所示:

async function function_one (arg) {
try {
if (arg != number) throw new Error('error')
let data = await findOne(arg);
data['property'] = 1+2+3
....
return data //this is an object with it's own properties
} catch (e) {
console.log(e); //errorHandling with winston
}
}


另一个(主)函数使用以前的函数中的数据:
async function Master (user_input) {
try {
let object = await function_one(user_input);
console.log(object.property_one) //weak warning
let another_object = await another_function (fixed_arg);
//some other logic with object properties.
return result_data
} catch (e) {
console.log(e);
}
}

因此,当我尝试访问 object函数中的 Master属性时,例如:
let object = await function_one(user_input);
console.log(object.property_one)

我的IDE(WebStrom)显示如下内容: enter image description here,但我知道,如果 function_one将正确执行(不包括 catch块),则此属性将存在。并且如果 Master函数将失败,则用户将不会从 function_one收到消息。 (IDE说 throw异常在本地捕获)。

那么我在做什么错了,我该怎么办?像这样处理 Master函数中的每个异步函数:
async function Master (user_input) {
try {
let object = await function_one(user_input)
.then(data => {
//working with properties here and then return it?
})
.catch(error => {//handle it});


或从 function_one返回所有属性,例如: return {property_one, property_two, ... }

最佳答案

使用destructuring assignment可以解决这个问题

关于javascript - 模式: How to access object.properties (correctly) from result returned by async function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com