我正在尝试在NodeJS中使用async / await,但是我的脚本抛出了语法错误。
自从Node 7.6以来,我一直很自然地支持
async / await 。当我跑步时node -v
我得到v7.10.0
。
以下是内容index.js
:
async function getValueAsync() {
return new Promise(function(resolve) {
resolve('foo');
});
}
let value = await getValueAsync();
console.log(value);
但是,当我调用此脚本时,node index.js
我得到:
let value = await getValueAsync();
^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:53:10)
at Object.runInThisContext (vm.js:95:10)
at Module._compile (module.js:543:28)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)
我正在运行Linux Mint 18.1。
如何获得我的脚本进行编译和运行?
await
仅在内部async
函数中有效,因此,例如,您需要一个异步IIFE将代码包装为:
void async function() {
let value = await getValueAsync();
console.log(value);
}();
而且,由于async
函数的返回值由Promise包裹,因此可以将getValueAsync
其简化为:
async function getValueAsync() {
return 'foo';
}
或者不要将其标记为async
并从中返回承诺:
function getValueAsync() {
return new Promise(function(resolve) {
resolve('foo');
});
}
问题内容: 我们如何才能在传递给事件发射器的回调中结束函数 而又不使事件发射 器 散布 ? 另外,无需使用 外部模块 ,只需使用普通的 NodeJS 7.x / 8.x (支持 Es6 语法和。 我们基本上希望将an 与事件发射器混合使用,以便在事件发射器发出信号时解析它。 另外请记住,在使用其他异步功能完成之前,我们不会从事件发射器开始。 如果我们有一个“新的Promise(…)”,我们将调用r
我遇到了一些使用c#的/关键字进行异步编程的最佳实践(我是c# 5.0的新手)。 给出的建议之一如下: 稳定性:了解您的同步上下文 ...一些同步上下文是不可重入的和单线程的。这意味着在给定时间只能在上下文中执行一个工作单元。这方面的一个例子是Windows UI线程或ASP.NET请求上下文。在这些单线程同步上下文中,很容易死锁。如果您从单线程上下文中生成一个任务,然后在上下文中等待该任务,您的
问题内容: 我认为我对 .NET 的经验可能会影响我的理解,因此我想一些代码示例: 我正在尝试让快速控制器在返回响应之前等待5秒: 该代码不起作用,浏览器不断加载和加载,从不显示任何内容。 我基于此SO答案构建的函数以及控制器方法,是基于(对)其工作原理的(错误的)理解,因此我需要进行一些澄清和更正: 1.我应该什么时候使用? 据我了解,您应该在函数调用之前使用。这样对吗?另外,为什么我可以在返回
我试图在react/electron项目中使用async/await,但它不起作用。我想要的是获取docker容器状态列表。但是安慰。日志(列表)返回未定义的。 有人能帮我吗?:)
在实际应用中,我对 C# 中的异步和 await 方法进行了说明。请考虑以程,这是工作代码的简单版本: 助手.cs 功能控制器.cs processing.js 现在,问题是第三方服务的所需时间更少(例如:2秒),而所需的时间更多(例如:100秒)。进行两个ajax调用并使用异步和等待是为了呈现自我。屏幕上显示数据1,不要等到自己。Data2已被检索。不幸的是,这种情况没有发生,我必须等待100秒
我有以下代码,这是通过Express调用的API。我需要返回一个引号数组,以及与这些引号相关联的部分数组。为此,我使用async/wait,它在我的引号变量中正常工作,但我在部件变量中得到一个空数组。 我相信这与部分结果是挂起的promise有关,因为当我在循环中记录我的结果时,我得到了适当的值。 我怀疑我一定是误解了async/await是如何工作的,或者promises/Promise是如何工