我已经为较新的Node版本编写了代码,希望将其实现为Google Cloud Function(GCF)。现在的问题是,GCF仅提供不支持异步功能的Node v6.14.0引擎。
我喜欢的解决方案是使用https://www.npmjs.com/package/asyncawait,因为我不需要进行重大更改(当以后希望使用新的Node时,我以后希望使用本机异步时,同样适用)。但是,即使我相信我正确地遵循了转换中的示例,也无法运行我的代码。
如果我按照指令声明函数,或者如果我以不同的方式声明函数(我认为应该起作用),则会收到错误消息“ xx不是函数”。
下面是两个产生错误的播放片段。 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”错误(我也尝试过添加更多括号,以符合此处的示例-使用相同包的页面下半部 -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
});
任何帮助将不胜感激!
谢谢!
答案 0 :(得分:2)
将函数调用移到定义下方:
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