function getList() {
var phrases = ["Phrase", "Phrase2", "Phrase3", "Phrase4"];
return Promise.all(phrases.map((phrase) => createObject(phrase)));
}
function createObject(text) {
return new Promise((resolve, reject) => {
mx.data.create({
entity: "MyFirstModule.Phrase",
callback: function(mxObject) {
mxObject.set("Text", text);
resolve(mxObject);
},
error: function(e) {
reject("Could not create object:" + error.message);
}
});
});
}
Use Promise.all to wait for multiple promises to complete.
Try to change 'let’ to 'var’
I found the answer
// This file was generated by Mendix Studio Pro.
//
// WARNING: Only the following code will be retained when actions are regenerated:
// - the import list
// - the code between BEGIN USER CODE and END USER CODE
// - the code between BEGIN EXTRA CODE and END EXTRA CODE
// Other code you write will be lost the next time you deploy the project.
import { Big } from "big.js";
// BEGIN EXTRA CODE
// END EXTRA CODE
/**
* @returns {Promise.<MxObject[]>}
*/
export async function CreatePhrasesList() {
// BEGIN USER CODE
return Promise.resolve(getList());
function getList()
{
return new Promise(function (resolve, reject) {
var phrases = ["Phrase", "Phrase2", "Phrase3", "Phrase4", "Phrase5", "Phrase6", "Phrase7", "Phrase8"];
var list = [];
for(let i=0; i<4; i++){
mx.data.create({
entity: "MyFirstModule.Phrase",
callback: function(mxObject) {
mxObject.set("Text", phrases[i]);
list.push(mxObject);
},
error: function(e) {
reject("Could not create object:" + error.message);
}
});
}
resolve(list);
});
}
// END USER CODE
}