我有一个使用一些异步功能的节点应用程序。
在继续进行其余的应用程序流程之前,我该如何等待异步功能完成?
下面有一个简单的示例。
var a = 0;
var b = 1;
a = a + b;
// this async function requires at least 30 sec
myAsyncFunction({}, function(data, err) {
a = 5;
});
// TODO wait for async function
console.log(a); // it must be 5 and not 1
return a;
在示例中,a
要返回的元素“ ”必须为5而不是1。如果应用程序不等待异步功能,则等于1。
谢谢
function operation(callback) {
var a = 0;
var b = 1;
a = a + b;
a = 5;
// may be a heavy db call or http request?
// do not return any data, use callback mechanism
callback(a)
}
operation(function(a /* a is passed using callback */) {
console.log(a); // a is 5
})
async function operation() {
return new Promise(function(resolve, reject) {
var a = 0;
var b = 1;
a = a + b;
a = 5;
// may be a heavy db call or http request?
resolve(a) // successfully fill promise
})
}
async function app() {
var a = await operation() // a is 5
}
app()
我正在尝试做一个简单的应用程序,加载数据并对其执行一个操作.所以我的想法是做这个异步。 我有3个数据源,我想异步加载它们。例如data1.xml、data2.xml和data3.xml所有文件加载起来都相当大,所以需要一些时间(这就是为什么我想要异步的原因)。 例如,我创建了一个包含3个文本框的窗口,这些文本框都绑定到一个特定的属性(Text1、Text2、Text3)和一个按钮。当我点击按钮时,
拼命尝试编写https://www.npmjs.com/package/node-firebird#reading-blobs-aasynchronous的同步版本 基本上我需要(a)等两次: 执行回调函数,以便事件发射器可用 为结束事件发生 然后返回Buffer。 我的代码(现在是JS/TS混合代码)当前执行2,但不是1:readBlob返回未定义的,然后Buffer.concat(buffer
问题内容: 我正在尝试使用新的异步功能,希望解决我的问题以后能对其他人有所帮助。这是我的代码正在工作: 问题是,我的while循环运行得太快,脚本每秒向Google API发送太多请求。因此,我想构建一个睡眠函数以延迟请求。因此,我也可以使用此功能来延迟其他请求。如果还有其他方法可以延迟请求,请告诉我。 无论如何,这是我的新代码不起作用。请求的响应在setTimeout中返回给匿名异步函数,但是我
问题内容: 据我了解,在ES7 /ES2016中,将多个in放在代码中的工作方式类似于带有promise的链接,这意味着它们将一个接一个地执行而不是并行执行。因此,例如,我们有以下代码: 我是否正确理解仅在完成时才会调用?并行调用它们的最优雅方式是什么? 我想在Node中使用它,所以也许有一个异步库解决方案? 编辑:我对这个问题提供的解决方案不满意:减速是由于异步生成器中非并行等待Promise的
问题内容: 我认为节点7.4支持异步/等待,但是此示例不起作用: 结果是: 如何在节点7.4上使用异步/等待? 问题答案: 是的,Node.js v7支持async-await,但将其锁定在标志后面。尚未准备就绪的功能不在此标记后面。 要在Node.js v7中使用async-await,只需使用此标志运行Node服务- async-await的正式发行版预定于4月启动的Node.js v8。 您
我以为async/wait在节点7.4中得到了支持,但是这个例子不起作用: 结果: 如何在node 7.4中使用async/await?