Node 6.14.0 asyncawait npm 包和谷歌云函数 -> Javascript 异步函数
Posted
技术标签:
【中文标题】Node 6.14.0 asyncawait npm 包和谷歌云函数 -> Javascript 异步函数【英文标题】:Node 6.14.0 asyncawait npm package and google cloud functions -> Javascript async functions 【发布时间】:2018-12-19 16:28:41 【问题描述】:我已经为较新的 Node 版本编写了代码,我希望将其实现为 Google Cloud Function (GCF)。现在的问题是 GCF 仅提供不支持异步功能的 Node v6.14.0 引擎。
我喜欢的解决方案是使用https://www.npmjs.com/package/asyncawait,因为我不需要进行重大更改(当我以后希望在更新的节点可用时使用本机异步时也同样适用)。但是,即使我相信我正确地遵循了转换中的示例,我也无法运行我的代码。
如果我按照说明声明函数,或者我以不同方式声明函数(我认为应该可以),我会得到错误“xx 不是函数”,我会得到“xx 未定义”。
下面是两个产生错误的 play sn-ps。数字 1) 是按照 npm 网站上的说明,数字 2) 是替代方法。
数字 1) 按照说明 -> “printStuff 不是函数”错误
var async = require('asyncawait/async');
var await = require('asyncawait/await');
printStuff()
var printStuff = async (function ()
var files = await (console.log("x"));
var files2 = await (console.log("y"));
return
);
数字 2) 替代 -> "printStuff is not defined" 错误(我也尝试添加更多括号以符合此处的示例 - 使用相同包的页面的一半 - SyntaxError: Unexpected token function - Async Await Nodejs)
var async = require('asyncawait/async');
var await = require('asyncawait/await');
printStuff();
async (function printStuff()
var files = await (console.log("x"));
var files2 = await (console.log("y"));
return
);
任何帮助将不胜感激!
谢谢!!
【问题讨论】:
您在定义之前调用了该函数。 【参考方案1】:将函数调用移到定义下方:
var async = require('asyncawait/async');
var await = require('asyncawait/await');
var printStuff = async (function ()
var files = await (console.log("x"));
var files2 = await (console.log("y"));
return [files, files2];
);
printStuff();
https://runkit.com/5b1e296261083b0012f4d373/5b461db6a6a0a90012a344cc
【讨论】:
谢谢!!希望我早点问,浪费了这么多时间:D 没想到会有所作为,因为它与我在更高版本的 Node 上运行的代码没有什么不同。试图投票,但还没有代表有所作为;)以上是关于Node 6.14.0 asyncawait npm 包和谷歌云函数 -> Javascript 异步函数的主要内容,如果未能解决你的问题,请参考以下文章