问题标签 [node-deasync]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 无法在nodejs中同步运行函数并表达
我在这个项目中使用了wikipedia-js。这是我的summary.js
文件代码。
我在/wiki/:topicname
路线中使用的这个模块。里面对应的代码index.js
是这样的。
问题是,每次我访问 wiki/ some-topicsummary.js
时,执行之前的最后一个返回语句htmlWikiText
都会填充内容。所以我总是hello initial
在浏览器页面上看到。尽管经过一段时间后,由于console.log
声明,它会打印在终端上。
那么我应该如何解决这个问题呢?
node.js - Mongoose 同步查找
我正在尝试构建一个同步的猫鼬查找。我采用了deasync的使用。 https://www.npmjs.com/package/deasync
这目前适用于保存,但不适用于查询
这部分代码
只是永远挂起,最终它会通过。有没有人有任何想法?
javascript - node.js:异步永不返回
在 node.js 中,我deasync
用来返回request
查询结果。
这工作正常。但如果我删除这一行:console.log(response);
它永远不会返回。我不知道发生了什么。
javascript - 在浏览器(前端)上 deAsync.js 的方法?浏览器化
所以,我实现了这个使用 deasync.js 的 node.js 模块(因为我需要一些同步计算,而 javascript 承诺还不够好)
现在,我必须将其导入前端,并从浏览器中调用它。
但是,似乎 browserify.js 无法实现。(我看到抱怨 deasync.js 部分的错误,但它不起作用)
有什么办法可以做到这一点?可能是 deasync.js 的前端版本?
我查看了执行类似工作的 npm 模块(synchronous.js),但似乎 browserify.js 也不喜欢它。(因为它取决于节点(?))
谢谢。
node.js - 现实中的异步与非同步
的背景
我正在节点中编写我的下一个服务器项目。以前的版本是用语言 D 编写的,主要是同步实现。我们都知道,JS 使用了很多 async 这对性能有好处,但很难维护(至少对我来说)。因为 node 和它的 node 模块可能使用不同的异步方法(回调、promise 和 await/async),这使得代码看起来不一致。我正在寻找一种平衡的方法,它不仅可以创建高质量和高性能的节点应用程序,而且适合常见的编程风格。
问题
在第一轮原型设计之后,我有了我的第一台服务器。当我启动服务器时,它会首先读取配置,然后加载一组模块。我希望它们按顺序加载。但正如我上面提到的,节点模块可能以异步方式工作。我希望在加载模块 a 时准确加载模块 b,我必须使用Promise
模式。我必须以疯狂的方式编写代码,尽管Promise
这已经是一种对程序员非常友好的方法。
不,我去另一个方向。目前我选择deasync
,它是 node 的 gyp 模块。它真的可以像这样阻塞代码执行。
或者像这样更神奇
IMO,这种deasync
方式对我来说更直接,但我有两个担忧:
- 它需要针对目标平台进行编译,因此部署过程对于生产来说会很复杂。
- 我检查了它的问题列表。有一些已知的严重问题,例如在某些极端情况下挂起。
问题
即将到来的新功能async/await
真的可以做同样的事情deasync
吗?如果由于 JS 的性质,它永远不会发生。我可能会停止思考这个问题。
请在前往节点的路上与我分享一些灯。
javascript - 如何在异步编程 /node js 中处理这种情况
我正在用 nodejs 编写服务。请阅读以下内容,了解我为解决此问题而采取的方法。
首先,我调用一个休息端点(比如 /offers)来获取数据。说它 cloudSenseData
最终响应我需要按摩/操作数据以将所需的响应作为输出返回。
在按摩数据(来自上述调用)期间,我必须检查是否存在相关产品信息。
如果存在,我需要调用另一个休息端点(例如 /offers/:id/products), :id 是在先前调用(cloudSenseData)中获得的目录项,以获取更多相关的产品信息详细信息,我可以将其包含在最终的按摩输出中。
所以让我们说在 cloudSenseData 我有 10 个目录项。
这些是我在按摩数据期间正在执行的步骤:
- 在 cloudSenseData 上使用 async.map 并将其映射到所需的响应格式。(我用它来使事情并行完成)并有一个回调函数来满足需要
- 在根据需要进行响应的同时在回调中检查它是否具有相关产品信息,如果没有问题,否则我正在调用下游端点以使用 catologueItemId 获取更多相关产品信息。(这里我使用的是 deasync )
这需要比需要更多的时间。
谁能建议任何替代方法来解决这个问题?
使用代码更新:common-nodejs 是我们编写的一个库,它包含许多功能,例如使用 restify 调用其余端点、读取应用程序配置等。下面的代码在 typescript 中。希望这可以帮助。
}
javascript - Node js异步转换为同步
我需要将数据同步推送到数组。第一个 API 请求获取需要在循环内获取图像数据的图像密钥基础。
node.js - npm deasync 导致电子崩溃
环境:Windows 10 Pro (x64) 和 electron 1.7.9 (也是 1.8.3 )
问题描述:使用“deasync”节点模块(版本0.1.11和0.1.12)导致渲染器进程崩溃。
在电子应用程序中,只需使用
var deasync = require('deasync')
作为创建 BrowserWindow 对象时的预加载,它会导致渲染器崩溃。
应用程序随机崩溃,并且每次您从锁定会话返回时:1. 运行应用程序 2. 锁定会话 3. 解锁会话 4. 渲染器崩溃
我也可以用
mainWindow.webContents.on('crashed', (event) => {
log.error( "crashed: ");
});
有什么建议么?
node.js - Windows - 错误:找不到绑定文件
使用 deasync 模块遇到奇怪的错误。
痕迹:
尝试了 npm i -g node-gyp 和 node-gyp rebuild 但没有任何运气 我错过了什么?我该如何解决它以及导致此错误的原因?