注册来自 JXA 的 Javascript 回复

Register Javascript reply from JXA

再次返回 JavaScipt / JXA 问题。我正在尝试注册来自使用 JXA 调用的应用程序的响应。我正在尝试注册值 app.toDos.byId("HQebK1em72yZqc3WqTmyzx")。当我启动以下脚本时:

var TaskApp = Application('Things3')

var toDo = TaskApp.ToDo({
  name: "A new task",
  notes: "notes"
})

var newTask = TaskApp.toDos.push(toDo)

console.log("Task " + newTask)

我在回复字段中得到以下输出:

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

这在编辑器中看起来像这样:

newTask 似乎被 .push 方法覆盖,return 是数组长度。我能否以某种方式注册或 return 应用程序 return 编辑的新任务 ID?

这是预期的:push 是一个 JavaScript 标准库方法 always returns the array length。只需这样做:

var TaskApp = Application('Things3')

var toDo = TaskApp.ToDo({
  name: "A new task",
  notes: "notes"
})

TaskApp.toDos.push(toDo)

console.log("Task " + toDo.id())