JS解构为其他变量
JS destructuring into other variable
我什至不确定这是否可能。我不知道该怎么做。
所以我有这些对象:
const testObject1 = {first: 25, second: 2};
let testObject2 = {property1: 0, property2: 29};
我想把 testObject1 的 "first" 属性 放在 testObject2 的 "property1" 中。
我通常的做法是:
const {first} = testObject1;
testObject2.property1 = first;
TestObject1 是从异步函数返回的。
所以我正在寻找的语法看起来像这样:testObject2.property1 = await asyncFunction().first
但我知道这不起作用。
但我想在解构的一行中完成此操作,但我找不到执行此操作的方法。
谢谢!
尝试使用 async/await 功能,它会起作用。
const testObject1 = {first: 25, second: 2};
let testObject2 = {property1: 0, property2: 29};
const getTestObject = function() {
return new Promise((resolve) => {
setTimeout(function() {
resolve(testObject1);
}, 3000);
})
}
const test = async () => {
const testObject1 = await getTestObject();
if (testObject1.first) {
const {first} = testObject1;
testObject2.property1 = first;
}
}
test();
console.log(testObject2); // {property1: 25, property2: 29}
官方指南:async function
无需解构...
testObject2.property1 = testObject1.first;
只需将 await 调用括在圆括号 ()
内,这将确保首先执行括号内的任何内容,在您的示例中,从 asyncFunction()
解析的对象将在括号后可用.例如:
testObject2.property1 = (await asyncFunction()).first;
请注意,您无法检查空值或未定义值,因此这种方法并不总是一个好主意。
我什至不确定这是否可能。我不知道该怎么做。
所以我有这些对象:
const testObject1 = {first: 25, second: 2};
let testObject2 = {property1: 0, property2: 29};
我想把 testObject1 的 "first" 属性 放在 testObject2 的 "property1" 中。
我通常的做法是:
const {first} = testObject1;
testObject2.property1 = first;
TestObject1 是从异步函数返回的。
所以我正在寻找的语法看起来像这样:testObject2.property1 = await asyncFunction().first
但我知道这不起作用。
但我想在解构的一行中完成此操作,但我找不到执行此操作的方法。
谢谢!
尝试使用 async/await 功能,它会起作用。
const testObject1 = {first: 25, second: 2};
let testObject2 = {property1: 0, property2: 29};
const getTestObject = function() {
return new Promise((resolve) => {
setTimeout(function() {
resolve(testObject1);
}, 3000);
})
}
const test = async () => {
const testObject1 = await getTestObject();
if (testObject1.first) {
const {first} = testObject1;
testObject2.property1 = first;
}
}
test();
console.log(testObject2); // {property1: 25, property2: 29}
官方指南:async function
无需解构...
testObject2.property1 = testObject1.first;
只需将 await 调用括在圆括号 ()
内,这将确保首先执行括号内的任何内容,在您的示例中,从 asyncFunction()
解析的对象将在括号后可用.例如:
testObject2.property1 = (await asyncFunction()).first;
请注意,您无法检查空值或未定义值,因此这种方法并不总是一个好主意。