我在调用返回对象的函数时遇到问题。该函数如下所示。
function upsertDoc(bucketName,docID,doc){
let bucket = bucketWithName(bucketName)
return new Promise((resolve,reject)=>{
bucket.upsert(docID,doc,(err, result2)=>{
if(err) return reject(err);
return resolve({docID, result});
});
});
}
如果我这样称呼它会很好
let { docID, result } = await couch.upsertDoc('contacts',id, myLookup)
我的问题是,如果我在此呼叫之前致电
let { docID , result} = await couch.getDoc('contacts',id)
系统抱怨“ SyntaxError:标识符'result'已被声明
“
所以问题是如何重新分配docID并将结果作为
{ docID, result } = await couch.upsertDoc('contacts',id, myLookup)
不起作用
答案 0 :(得分:2)
您需要更改结果之一的名称。
let { docID: docId2 , result: result2} = await couch.upsertDoc('contacts',id, myLookup)
例如,这会将实例的结果重命名为result2。
您不能在相同范围内声明相同的变量名称。
如果您想将它们重新分配给相同的变量,则必须在事后执行。
let { docID: docID2 , result: result2} = await couch.upsertDoc('contacts',id, myLookup)
docID = docID2;
result = result2;