React / Javascript - 函数在完成执行之前返回

时间:2017-09-24 08:42:04

标签: javascript reactjs

我创建了一个函数,它接受一个对象并解析以构建一个搜索查询。我遇到的问题是这个函数在我循环遍历对象之前返回:

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;
}

返回值为“?” - 从一开始就设置了字符串。为什么不等到我绕过对象?

我收集这是因为它是一个“异步”函数,所以这是我应该引入一个承诺或回调的地方吗?这是我第一次遇到这样的问题。

感谢您的回答。

1 个答案:

答案 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;
}