Function.InvokeAfter麻烦

Function.InvokeAfter trouble

我试图将对 StockData 的每次调用延迟 5 秒,以便通过 API 调用限制。似乎无法正确完成,我做错了什么?

let
    Source = Excel.CurrentWorkbook(){[Name="Stocks"]}[Content],
    #"Invoked Custom Function" = Function.InvokeAfter(Table.AddColumn(Source, "StockData", each StockData([Full Name])), #duration(0,0,0,5)),
    #"Expanded StockData" = Table.ExpandTableColumn(#"Invoked Custom Function", "StockData", {"Name", "Value.1. open", "Value.2. high", "Value.3. low", "Value.4. close", "Value.5. volume"}, {"StockData.Name", "StockData.Value.1. open", "StockData.Value.2. high", "StockData.Value.3. low", "StockData.Value.4. close", "StockData.Value.5. volume"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded StockData",{"Size", "Short Name", "ISIN"})
in
    #"Removed Columns"

相关代码,如果有人想尝试一下:

let StockData = (stock as text) =>

        let
            Source = Json.Document(Web.Contents("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=" & stock & "&outputsize=compact&apikey=RG5AM4ORXWE1X0V8")),
            #"Time Series (Daily)" = Source[#"Time Series (Daily)"],
            #"Converted to Table" = Record.ToTable(#"Time Series (Daily)"),
            #"Expanded Value" = Table.ExpandRecordColumn(#"Converted to Table", "Value", {"1. open", "2. high", "3. low", "4. close", "5. volume"}, {"Value.1. open", "Value.2. high", "Value.3. low", "Value.4. close", "Value.5. volume"})
        in
            #"Expanded Value"
in StockData

您需要将 Function.InvokeAfter 应用于该函数(而不是 table),并且您需要稍微更改语法以将参数传递给该函数。

将第二行改写为:

#"Invoked Custom Function" = Table.AddColumn(Source, "StockData", each Function.InvokeAfter(()=>StockData([Full Name])), #duration(0,0,0,5))),