Я пытаюсь связать выпадающие значения, используя ответ API. Но невозможно связать параметры изнутри асинхронного http-вызова. Это дает следующую ошибку. ОШИБКА TypeError: Параметры FieldDropdown должны быть массивом. Дайте мне знать, если есть какое-либо решение для этого.
Blockly.Blocks["dropdown_block"] = {
init: function() {
this.appendDummyInput()
.appendField("When")
.appendField(
new Blockly.FieldDropdown(function() {
var options = [];
return self.http
.get("http://localhost:3000/posts")
.subscribe((data: any) => {
for (let i = 0; i < data.length; i++) {
options.push([data[i].title, data[i].title.toUpperCase()]);
}
return options;
});
}),
"DAY"
)
.appendField("on")
this.appendStatementInput("NAME").setCheck(null);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour("#9ede08");
this.setTooltip("");
this.setHelpUrl("");
}
};