我创建了一个函数,它接受一个对象并解析以构建一个搜索查询。我遇到的问题是这个函数在我循环遍历对象之前返回:
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;
}
返回值为“?” - 从一开始就设置了字符串。为什么不等到我绕过对象?
我收集这是因为它是一个“异步”函数,所以这是我应该引入一个承诺或回调的地方吗?这是我第一次遇到这样的问题。
感谢您的回答。
答案 0 :(得分:1)
而不是使用map
,您可以使用Array.prototype.forEach()
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;
}