【发布时间】:2016-05-21 08:26:22
【问题描述】:
我是 nodejs 回调函数的新手。我必须在给定的两个价格范围之间找到手机列表,如果获得的列表中没有 15 部手机,我必须更改价格范围,直到获得 15 部手机。实际上,我在另一个文件中编写了用于从数据库中搜索电话的函数,从该文件中我将回调发送到调用函数。收到回调后,如果数组大小小于 15,我必须检查数组大小,然后更改价格范围,并且必须调用相同的函数,如递归或循环。我无法处理回调函数。请帮助我编写正确的代码。
while(true ){
console.log("around came")
Search.findBestMobile(context.end_price , context.start_price , function(data){
console.log("Best Mobile");
size = data.hits.hits.length;
if(size >= 15){
context.phone_list = makeStringFromArray(data.hits.hits);
cb(context);
break;
}else{
context.start_price += 1000;
context.end_price += 1000;
}
});
}
但是在上面的代码中,break 是无法访问的语句。我应付不来。请帮帮我。
【问题讨论】:
-
while(true)- 这不是一个好主意。 -
是的,我知道,如何修改
-
你已经在使用回调了(在 else 分支中再添加一个),所以不确定是什么问题。
-
好的,我正在尝试删除无限循环
-
首先:递归数据库调用很少是一个好的解决方案,建议采用两步解决方案,您首先按价格范围“分区”数据库,因此知道必须选择哪个范围才能获得足够的结果。 第二:我们在谈论什么货币? 1000 美元对我来说是包含(几乎)所有可用手机的一步。在这 1000 美元的价格范围内,您大约有多少结果/电话?只是想知道我们正在谈论多少递归调用。
标签: javascript node.js callback