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))),
我试图将对 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))),