当前位置: 首页 > 知识库问答 >
问题:

节点6.14。0 AsyncWait npm包和google云函数->Javascript异步函数

严玉泽
2023-03-14

我已经为更新的节点版本编写了代码,我希望将其实现为谷歌云功能(GCF)。现在的问题是GCF只提供节点v6.14.0引擎,不支持异步功能

我喜欢的解决方案是使用https://www.npmjs.com/package/asyncawait,因为我不需要做重大更改(当我后来希望在新的节点可用时使用本机异步时也同样适用)。然而,我无法运行我的代码,即使我相信我已经正确地遵循了转换中的示例。

如果我按照说明声明函数,或者如果我以不同的方式声明函数(我认为应该工作),我会得到错误“xx不是函数”。

下面是产生错误的两个播放片段。编号1)符合npm网站上的说明,编号2)为备选方案。

编号1)按照说明-

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)备选方案-

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个答案

伍皓
2023-03-14

将函数调用移到定义下方:

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

 类似资料:
  • 问题内容: 首先,这是一个非常特殊的情况,它以错误的方式故意将异步调用改型为一个非常同步的代码库,该代码库长成千上万行,并且当前时间不具备进行更改的能力。对的。” 它伤害了我的每一个生命,但是现实和理想往往并没有相互融合。我知道这很糟糕。 好的,顺便说一句,我该如何做,这样我可以: 示例(或缺少示例)全部使用库和/或编译器,这两种库均不适用于此解决方案。我需要一个如何使其冻结的具体示例(例如,在调

  • 我在nodeJS中有一个主要的谷歌云功能。在这个函数中,我希望通过编程在同一个项目中创建另一个云函数。这个新的云函数的代码可以存储在谷歌云存储的zip文件中。我试着跟着这里的导游走:https://cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions/create 我能够在测试模拟器中运行查询,

  • 我在一个函数中有这样的代码块: 它获取一些数据,然后对数据运行验证()。 但是,我对数据的验证实际上也是异步的,因为它是根据一个json模式来验证数据的,而json模式位于一个独立的json文件中,所以它必须首先读取该文件。 我使用了一个承诺来读取文件内容,然后进行验证: 如何编辑此问题中的顶部代码块以解释if语句()中的异步函数?

  • 我的自定义模块具有以下代码: 如果在我的模块外调用函数,效果很好,但是如果在模块内调用,则在运行时出现错误: (节点: 24372)UnhandledPromiseRejse警告:未处理的promise拒绝(拒绝id: 1):引用错误:未定义PrintNearestStore 当我将语法更改为: 它开始在模块内正常工作,但在模块外失败-我得到了错误: (节点: 32422)UnhandledPro

  • 粗略地说,异步函数 为使用 Promise 的代码提供了更好的语法。 38.1. 异步函数:基础知识 考虑以下异步函数: async function fetchJsonAsync(url) { try { const request = await fetch(url); // async const text = await request.text(); // as

  • 异步编程对JavaScript语言太重要。Javascript语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可。 ES6诞生以前,异步编程的方法,大概有下面四种。 回调函数 事件监听 发布/订阅 Promise 对象 ES6将JavaScript异步编程带入了一个全新的阶段,ES7的Async函数更是提出了异步编程的终极解决方案。 基本概念 异步 所谓"异步",简单说就是一个