当我打开多个流并且必须获得一个绝对end
事件来完成逻辑时,如何避免使用类似递归的结构。
var someArray = ['file1', 'file2', 'file3'];
someArray.forEach(function( file ) {
fs
.createReadStream( file )
.pipe( /* do some stuff */ )
.on('data', function( usageInfo ) {
// done?
});
}
我有几个文件必须通过tp进行一些处理。如何设置一个事件,告诉我所有这些事件何时完成?目前,我得到的是每个end
事件都是单独的。
我绝对可以同时开始每个视频流。我只需要以某种方式收集结局?
我可以为每个end
事件调用一个函数调用并对其进行计数……虽然听起来很hacky?
我觉得有办法兑现诺言,但我不知道怎么做。
我觉得有办法兑现诺言,但我不知道怎么做。
就在这里。由于promise确实表示异步值,因此您将在一个流的结尾得到一个promise:
var p = new Promise(function(resolve, reject) {
fs.createReadStream(file)
.on('error', reject)
.pipe(/* do some stuff */)
.on('end', resolve)
.on('error', reject); // call reject(err) when something goes wrong
});
它可以像使用p.then(functio(usageInfo) { console.log("stream ended"); })
。
现在,如果您创建多个promise,其中一个用于数组中的文件名,则所有流将并行运行,并在完成时解析各自的promise。然后,您可以Promise.all
用来收集-读取“
await”-将它们各自的所有结果转换成一系列结果的新承诺。
var promises = ['file1', 'file2', 'file3'].map(function(file) {
return new Promise(function(resolve, reject) {
…
});
});
Promise.all(promises).then(function(usageInfos) {
console.log("all of them done", usageInfos),
}, function(err) {
console.error("(At least) one of them failed", err);
});
本文向大家介绍如何避免回调地狱?相关面试题,主要包含被问及如何避免回调地狱?时的应答技巧和注意事项,需要的朋友参考一下 你可以有以下方式避免回调地狱 模块化:将回调函数转换为独立的函数 使用流程控制库,例如[aync] 使用Promise 使用aync/await 使用来计算生成器或Promise 解析:这个问题有很多种答案,取决你使用的场景,例如ES6, ES7,或者一些控制流库。
按ID找到一个有评论和链接属于它的帖子: 如何使用Promise(http://mongoosejs.com/docs/promissies.html)避免回拨地狱? 好像不好......
问题内容: 我正在使用以下代码通过AJAX提交表单: 背景 我的PHP处理程序执行各种任务,然后发回响应。然后,我可以在成功或错误函数中执行某些操作。 我的问题 当用户双击表单的“提交”按钮时,将发生两次AJAX调用,这将导致我的PHP处理程序中的代码执行两次。 我的问题 如果用户双击提交,如何避免我的代码执行两次? 问题答案: 当AJAX调用再次出现时,请先禁用首次单击的“提交”按钮,然后重新启
此问题是之前问题的后续:使用Streams添加BigDecimals 这个问题与使用Java8和Lambda表达式添加有关。在实现给出的答案后,我遇到了另一个问题:每当流为空时,方法都会抛出一个。 考虑下面的代码: 香草Java代码对空集合没有问题,但是新的Java8代码有问题。 在这里避免NSEE最优雅的方式是什么?当然,我们可以做到: 但是有没有一种Java的方法来处理空集合?
我有以下代码。 HTML
问题内容: 有效的Java说: 内存泄漏的第三个常见来源是侦听器和其他回调。如果在客户端注册回调但未显式注销的情况下实现API,除非您采取某些措施,否则它们会累积。确保回调被及时垃圾回收的最佳方法是仅存储对其的弱引用,例如,通过仅将它们作为键存储在WeakHashMap中。 我是Java的初学者。有人可以教我如何在回调中创建弱引用,并告诉我它们如何解决内存泄漏问题吗?谢谢。 问题答案: 阅读这篇文