gpt4 book ai didi

javascript - Nodejs异步执行

转载 作者:行者123 更新时间:2023-11-30 15:15:38 26 4
gpt4 key购买 nike

我正在使用我公司的数据库,我正在尝试设置一条路线。我得到的数据是一个包含 1000 个值的 JSON 数组。

这是函数——

router.get('some_route', function(req, res, next){
var ress = [];
var name = req.params.name;
baWelcomeController.autoComplete(name).then(function(succ){
var x = Object.values(succ[0][0]);
res.status(200).send(x);
}).catch(function(err){
res.status(404).send(err);
console.log("error in router.get", err);
});

});

现在看看我代码的 object.values 部分,我从互联网上了解到它是一个 O(n) 函数,所以 nodejs 应该将它插入调用堆栈并同时执行其他功能,但发生的事情是我得到了预期的回应。 succ[] 中的值的数量是 1000,所以我写了另一个函数注释 Object.values 并写了一个 for 循环 -

router.get('some_route', function(req, res, next){
var ress = [];
var name = req.params.name;
baWelcomeController.autoComplete(name).then(function(succ){

var x = 0;
for(var i = 0; i <= 1000; i++)
x += i;
res.status(200).send(x);
}).catch(function(err){
res.status(404).send(err);
console.log("error in router.get", err);
});

});

现在我没有得到 x 的值作为响应我得到一个空对象。我发现这种行为很奇怪!谁能给我解释一下。

最佳答案

它认为这可能是 express 把你的数字变成一个对象。根据文档,send 可以接受 Buffer、String 或 Array。

https://expressjs.com/en/4x/api.html#res.send

尝试类似的东西:res.status(200).send({num: x});

关于javascript - Nodejs异步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44512737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com