kintone.Promise

aki发表于:2022年06月10日 13:25:13更新于:2023年03月29日 11:02:34

kintone.Promise 的用法

kintone.Promise 是指,使用了 Promise 对象的 kintone JavaScript API 。
通过使用 kintone.Promise ,即使在不支持 ES6 的浏览器上也可以使用 Promise 。
只要在可支持 Promise 的事件句柄内,将 Promise 对象放在返回值里,即可等待异步处理结束后,再执行之后的处理。 

函数

kintone.Promise(executor)

参数

参数名称要指定的值必须说明
executor函数必须

指要传递给 Promise 对象的异步处理函数。

以下两个函数作为参数传递给 executor 。

  • resolve
    在 executor 内处理成功时调用的函数。
    传递给 resolve 函数的值可通过 then 方法的第1个参数获取。

  • reject
    在 executor 内处理失败时调用的函数。
    传递给 reject 函数的值可通过 then 方法的第 2个参数或 catch 方法获取。

then 方法、catch 方法的规格请参考 Promise(外部网站) 。

返回值

返回 kintone.Promise 对象。

可支持的事件

类别API函数
记录列表事件记录列表页面显示后的事件

app.record.index.show

mobile.app.record.index.show

记录列表页面的行内编辑开始时的事件app.record.index.edit.show
记录列表页面的行内编辑保存前的事件app.record.index.edit.submit
记录列表页面的行内编辑保存成功后的事件app.record.index.edit.submit.success
记录列表页面执行记录删除前的事件app.record.index.delete.submit
记录显示事件记录详情页面显示后的事件app.record.detail.show
mobile.app.record.detail.show
记录详情页面在执行删除之前的事件app.record.detail.delete.submit
mobile.app.record.detail.delete.submit
流程管理的动作执行事件app.record.detail.process.proceed
mobile.app.record.detail.process.proceed
记录添加事件记录添加页面显示后的事件app.record.create.show
mobile.app.record.create.show
记录添加页面在执行保存之前的事件app.record.create.submit
mobile.app.record.create.submit
记录添加页面保存成功后的事件app.record.create.submit.success
mobile.app.record.create.submit.success
记录编辑事件记录编辑页面显示后的事件app.record.edit.show
mobile.app.record.edit.show
记录编辑页面在执行保存之前的事件app.record.edit.submit
mobile.app.record.edit.submit
记录编辑页面保存成功后的事件app.record.edit.submit.success
mobile.app.record.edit.submit.success
记录打印页面显示事件记录打印页面显示后的事件app.record.print.show
图表显示事件图表显示后的事件app.report.show
mobile.app.report.show
门户显示事件门户页面显示后的事件portal.show
mobile.portal.show

范例

使用API请求发送 kintone REST API请求 时

const body = {
  app: 1,
  id: 1
};

kintone.events.on('app.record.create.submit', (event) => {
  const record = event.record;
  return kintone.Promise((resolve, reject) => {
    kintone.api(kintone.api.url('/k/v1/record.json', true), 'GET', body).then((resp) => {
      record['单行文本框'].value = resp.record['单行文本框'].value;
      resolve(event);
    });
  });
});

不使用API请求发送 kintone REST API请求 时

kintone.events.on('app.record.create.submit', (event) => {
  const record = event.record;
  return kintone.Promise((resolve, reject) => {
    setTimeout(() => {
      record['单行文本框'].value = 'sample';
      resolve(event);
    }, 10000);
  });
});