小编eki*_*iim的帖子

函数应用脚本的异步执行

我一直在挖掘,但找不到关于如何在 Google App Script 中使用异步函数的参考或文档,我发现人们提到这是可能的,但没有提到如何...

有人可以指出我正确的方向或为我提供一个例子吗?承诺、回调或其他可以帮助我解决这个问题的东西。

我有这个函数可以调用它foo需要一段时间才能执行(足够长的时间它可能会超时 HTTP 调用)。

我想要做的是重构它,它的工作方式是这样的:

function doPost(e) {
    // parsing and getting values from e
    var returnable = foo(par1, par2, par3);
      return ContentService
             .createTextOutput(JSON.stringify(returnable))
             .setMimeType(ContentService.MimeType.JSON);
}

function foo(par1, par2, par3) {
    var returnable = something(par1, par2, par3); // get the value I need to return;

    // continue in an Async way, or schedule execution for something else
    // and allow the function to continue its flow
    /* async bar(); */

    return returnable;
} …
Run Code Online (Sandbox Code Playgroud)

asynchronous callback promise google-apps-script

10
推荐指数
3
解决办法
9436
查看次数

argparser条件字段取决于选项

当前,我有一个正在构建的CLI工具,我想给它这种形式的表格。

usage: PROG SUBPARSER [-h] 
                 (-l {optionA,optionB,optionC} | -s TERM [-a, [-b, [-c]]])

Run Code Online (Sandbox Code Playgroud)

我正在做的是有一个主cli模块,它将从我要向用户公开的所有模块中导入所有arguments_parser函数,并将其动态添加为主解析器。sub parsers

以下是python代码的功能,该功能将解析器添加到主解析器中,成为解析器,其类型ArgumentParser可能是根解析器,也可能是子解析器。(我对每个模块都这样做,因此它们的方法作为CLI公开)。

现在,我要在这种特殊情况下尝试做的事情是,让一个命令PROG具有一个第一个参数SUBPARSER,该参数具有两个(可能更多)互斥的参数序列(不创建新的子解析器),说我有两个功能,searchlist因此搜索和列表可以有共同的参数(这将assing向子解析器不是组),但也有标志和参数是一款专用于使用--list或者--search,为了样订做命令

PROG SUBARSER --list optionA -a -o -b
PROG SUBARSER --list optionA -a -o
PROG SUBARSER --list optionA -a -b
PROG SUBARSER --list optionA -a
PROG SUBARSER --list optionA

PROG SUBARSER --search TERM -a -k
PROG SUBARSER --search TERM -c
PROG SUBARSER --search TERM 
Run Code Online (Sandbox Code Playgroud)

I tried adding …

python arguments argparse python-3.x

5
推荐指数
0
解决办法
45
查看次数

使用 JS 从不同的 html 文件访问 DOM

有没有办法从另一个 HTML 文件中获取 DOM 元素,而不是从调用 JS 文件的 HTML 文件中获取元素?

我的想法是制作 html 模板,并根据 JS 文件施加的某些条件将它们渲染在主 html 文件中。

就像是

var initScreen = new document(URL);
document.getElementById("body") = initScreen.getElementById("body");
Run Code Online (Sandbox Code Playgroud)

假设这是正确的方法。

html javascript css dom

3
推荐指数
1
解决办法
4082
查看次数

最佳实践围绕使用 S3 作为具有数据库的应用程序的文件存储

我认为使用 S3 兼容来为应用程序资产或“附件”进行文件存储是最常见的用例之一,但我看到了一些问题,但我不清楚如何解决。

如果您要提供一个可以缓存的前端或纯粹的 HTML/JS 项目,很明显您可以使用存储(+ CDN)来托管它,但是当存储来自用户的文件时,我看到选项是:

  1. 只有应用程序有权访问存储桶,并对所请求的资源进行“传递”。

  2. 应用程序具有写入访问权限,但读取权限是公共的,这意味着应用程序接收资源并将其存储到存储桶中,客户端从应用程序获取引用以识别存储桶上的资源。

  3. 应用程序通过设置 OpenID 类型的模型或提供短期令牌来访问给定对象来管理访问,并且客户端在应用程序的明确许可下并通过获取要进行交易的正确引用来执行所有操作。

我认为简单的方法是使用选项 2,我见过 FOSS 项目在支持 S3 兼容存储时就这样做。

但我不确定什么是好的决定标准。

我看到的主要问题是,使用方法 1 允许应用程序对客户端透明,同时在请求多个文件时引入可能的瓶颈。

关于第三点,听起来太复杂,无法在 POC 中实现。

关于这种情况的最佳实践有什么想法或评论吗?

amazon-s3 file-storage amazon-web-services object-storage

1
推荐指数
1
解决办法
407
查看次数

写一个像Vector.at()的方法

我想知道.at()方法是如何工作的,就像C++的Vector类中的方法一样,这两种方法都返回和/或为数组成员赋值.我不知道用宏可以做到这一点,或者声明同名的2方法......有什么帮助吗?

我一直试图找到并打开矢量文件,看看它是如何编写的,具体方法,但我还没有找到它.

(它用于我正在构建的不同结构,但我想只使用一种方法访问它们)

我的意思的例子.

vec.at(x) = value;
newValue = vec.at(x);
Run Code Online (Sandbox Code Playgroud)

c++ structure vector

0
推荐指数
1
解决办法
78
查看次数