You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JXA调用Things3新建待办时如何获取push操作返回的任务ID

解决方案

方法1:直接访问待办实例属性(推荐)

JXA中手动创建的应用对象实例在添加到对应集合后,会自动同步应用侧分配的所有属性,包括唯一ID,无需依赖push方法的返回值,示例代码如下:

var TaskApp = Application('Things3')

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

// 添加到待办集合
TaskApp.toDos.push(toDo)

// 直接从实例获取ID
var taskId = toDo.id()
console.log("新任务ID:" + taskId)
// 若需要获取完整的byId引用,直接使用toDo变量即可,等价于TaskApp.toDos.byId(taskId)

方法2:获取待办集合的最新元素

如果是批量添加的场景,也可以通过下标取集合的最后一个元素获取新建的任务:

var TaskApp = Application('Things3')

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

TaskApp.toDos.push(toDo)
// 取集合的最后一个元素
var newTask = TaskApp.toDos[TaskApp.toDos.length - 1]
var taskId = newTask.id()
console.log("新任务ID:" + taskId)

补充说明

Replies面板中显示的app.toDos.byId("HQebK1em72yZqc3WqTmyzx")是Apple事件的原始响应,JXA为了兼容JS原生数组的API规范,会将push方法的返回值重写为数组的新长度,因此无法直接从push的返回值中获取该引用。


内容的提问来源于stack exchange,提问作者GeistInTheBASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:57:01