Vuelvo de nuevo con una pregunta de JavaScipt/JXA. Estoy tratando de registrar una respuesta de una aplicación a la que estoy llamando con JXA. Estoy intentando registrar el valor app.toDos.byId("HQebK1em72yZqc3WqTmyzx") . Cuando pateo el siguiente script:
var TaskApp = Application('Things3') var toDo = TaskApp.ToDo({ name: "A new task", notes: "notes" }) var newTask = TaskApp.toDos.push(toDo) console.log("Task " + newTask)Obtengo el siguiente resultado en el campo Respuestas:
app = Application("Things") Application("Things").toDos.push(app.ToDo({"name":"A new task", "notes":"notes"})) --> app.toDos.byId("HQebK1em72yZqc3WqTmyzx") Application("Things").toDos.length --> 3502 /* Task 3502 */ Result: undefined El valor newTask parece ser sobrescrito por el método .push que devuelve la longitud de la matriz. ¿Puedo de alguna manera registrar o devolver el nuevo ID de tarea que devuelve la aplicación?
Eso es de esperar: push es un método de biblioteca estándar de JavaScript que siempre devuelve la longitud de la matriz . Solo haz esto en su lugar:
var TaskApp = Application('Things3') var toDo = TaskApp.ToDo({ name: "A new task", notes: "notes" }) TaskApp.toDos.push(toDo) console.log("Task " + toDo.id())