Tag: asynchronous

在节点Js中使用asynchronousfunction而不是使用asynchronousfunction有什么好处?

现在我遇到了一个区分asynchronous函数和同步函数的文章。 从我对不同例子和解释的理解中,同步函数被阻塞,而asynchronous函数不被阻塞。 但是我想知道在使用中是否有任何性能优势?

如何才能发送一个快速响应,直到asynchronous循环完成后?

想要做下面的事情。 我认为这是asynchronous调用的问题,因为我发送的响应始终是一个空数组,但API正在返回数据。 相当新的这一点,任何input,非常感谢! app.get('/:id/starships', (req, res) => { let person = findPersonById(people, req.params.id)[0]; let starshipUrls = person.starships; for(let i=0; i<starshipUrls.length; i++){ axios.get(starshipUrls[i]).then(response => { starships.push(response.data); }) .catch(err => console.log(err)); } res.json(starships); })

我们如何使用Async,以及nodeJS中的最佳方式是什么

我试图传递一个查询到我的数据库,然后将结果发送到我的客户端,但它看起来像请求是asynchronous的,因为我的请求发生后,我的发布请求返回值。 如何设置等待请求? 我的数据库连接 var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'my_password', database: 'MEETME' }); connection.connect(function(err) { if (err) { console.log("error while connecting to database"); console.log(err.code); } }); // function that query database <——- function queryDatabase(userQuery) { connection.query(userQuery, function(err, result) { if (err) { throw err; } console.log("before"); return result; }); } 这是我的发帖要求 //POST […]

在NodeJs中使用mariadb查询来使用asynchronous的正确方法是什么?

我是新来asynchronous/等待。 我试图使用asynchronous和等待,但查询不等待,它发生在最后和页面呈现之前的查询,所以我不能得到正确的答案呈现页面上。 这是我的代码之前使用asynchronous等待 orderMiddleware.newOrder = function (req, res) { var total = 0 var curr_total = 0 // get items from cart c.query('select * from cart where user_id=:userId', { userId: req.user.ID }, function (err, cart) { if (err) { console.log(err) } else { cart.forEach(function (item) { // Find item from DB and check their price […]

每隔X秒执行一次asynchronousJavaScript代码

如何每X秒执行一次asynchronousjs代码(用node.js编写),并确保在执行asynchronous函数的callback(成功,错误)之前,不会启动新的execute / call。 代码示例: asyncFunc(function(successData){ // do something with successData }, function(errorData){ // do something with errorData }); setInterval首先出现在我的脑海里,但是我认为它不能确定我想要什么,如果callback没有在间隔内执行,它会进入队列。 编辑:为了简化大小写,在callback完成后重复asynchronous函数调用1秒钟。

Nodejsasynchronous和同步读写文件 – 何时使用?

这是一个非常普遍的问题,但我不太明白。 我什么时候会比另一个更喜欢? 我似乎不明白可能会出现什么情况,这显然会比较有利于彼此。 是否有充分的理由避免x /使用x?

如何解决在本地捕获exception的“抛出”?

在处理REST API调用的这个函数中,任何处理部分请求的被调用的函数都可能会抛出一个错误来指示错误代码应该作为响应发送。 但是,函数本身也可能发现一个错误,在这一点上它应该跳入exception处理块。 static async handleRequest(req) { try { let isAllowed = await checkIfIsAllowed(req); if (!isAllowed) { throw new ForbiddenException("You're not allowed to do that."); } let result = await doSomething(req); // can also raise exceptions sendResult(result); } catch(err) { sendErrorCode(err); } } Webstorm将突出显示以下消息: 'throw' of exception caught locally. This inspection reports any instances of […]

有没有办法在Redis获得locking? (Node.js的)

我的Node.js应用程序接受来自外部的连接。 每个连接处理程序在Redis上读取一个SET,最终修改该集合,然后继续。 问题是与此同时另一个asynchronous连接可以尝试读取相同的SET并尝试更新它或根据它读取的内容决定下一步。 我知道Redis尽力去做primefaces,但是这对于我的用例还不够。 想一想:设置被读取,以了解它是否满(有一个商业规则)。 如果它是完整的,那么会发生一些事情。 问题是,如果只剩下一个插槽,则两个半并发连接可以认为每个连接都是最后一个。 我得到溢出。 我有一种方法来保持连接“等待”很短的时间,其他最终需要更新设置状态? 我认为这是一个angular落的情况,非常非常不幸…但你知道:) 使用另一个键作为“锁”是一个选项,还是它臭?

我可以允许在与循环node.js“rest”?

我有一个巨大的for循环,我想在我正在处理时允许I / O继续。 也许每隔一万次左右迭代。 任何方式让我允许这样的额外的I / O?

重新编码嵌套for循环在node.js中使用asynchronous

我是新的Node.js和asynchronous编码。 我需要编写一个嵌套的for循环,这将与Node一起使用。 我知道我的问题与这里发布的问题非常相似: 在nodejs中以asynchronous方式嵌套循环,下一个循环必须在完成后才能启动 ,但即使详细查看该post后,我也无法修复我的代码。 我正在使用XML Feed。 “parsing器”使用xml2js包。 如果我删除sql查询(为此我使用的是mysql节点包),但是当我把sql查询放入时,所有的订单首先被处理,输出“DONE”然后查询失败,因为它试图重复查找最后一个订单的项目。 我试过用async.forEach循环replacefor循环,但这没有帮助。 任何帮助或build议,如何重新编码这种方式更加惯用的节点将不胜感激。 非常感谢! Sixhobbits parser.parseString(data, function (err, result) { if(err) throw(err); var numOrders = result['Root']['Orders'][0]['Order'].length; var curr, currItem, currOrdId, items, sellersCode; console.log("Logging IDs of", numOrders, "orders"); // for each order for (var j=0; j<numOrders; j++){ //current order curr = result['Root']['Orders'][0]['Order'][j]; currOrdId = curr['OrderId'][0] items = curr['Items'][0]['Item']; […]