我创建了一个函数,它接受一个对象并进行解析以构建搜索查询。我遇到的问题是这个函数在我循环访问对象之前返回:
export default function buildQuery(query) {
let buildQuery = "?", pushAmpersand;
Object.keys(query).map((v, i) => {
i === 0 ? pushAmpersand = "" : pushAmpersand = "&";
buildQuery += pushAmpersand + v + "=" + query[v];
});
console.log('Finished executing?');
console.log(buildQuery);
return buildQuery;
}
返回值为“?” - 从一开始就设置了字符串。为什么它不等到我循环遍历该对象?
我认为这是因为它是一个“异步”函数,所以这是我应该引入 promise 或回调的地方吗?我还是第一次遇到这样的问题。
感谢您的回答。
最佳答案
您可以使用Array.prototype.forEach(),而不是使用 map
export default function buildQuery(query) {
let buildQuery = "?";
Object.keys(query).forEach((v, i) => {
if( i !== 0 ) buildQuery += "&";
buildQuery += (v + "=" + query[v]);
});
console.log('Finished executing?');
console.log(buildQuery);
return buildQuery;
}
关于javascript - React/Javascript - 函数在执行完成之前返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388228/