说明:组件级别的 SPI 跟组件UI共用一个 jsContext 可以再定义一个全局变量,实现内存共享。
在 app.json 文件,声明组件时额外增加一个SpiPath 属性,这个属性的含义是组件级别 SPI 的文件路径,整个模块以 default export 的方式导出。
示例:
const mySpi = async (opt) => {
console.log(opt, "框架调用 spi 传入的参数");
const result = {};
console.log(result, "框架调用 spi 的返回值");
return result;
};
export default {
mySpi,
};
1)在 SPI 中可以调用云函数。
2)SPI 函数支持 async 语法。
3)SPI 中可以调用 UI 能力。
import { Dialog } from '@alifd/next'
const delay = (times) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve();
}, times);
});
};
const mockSpi = async () => {
await delay(2000);
await new Promise((resolve, reject) => {
Dialog.alert({
title: '我是UI弹窗',
content: '弹出的内容',
onOk: resolve,
})
})
return {
apiName: "mockSp11111i",
apiData: {
mock:"i am mock data"
},
};
};
export default {
mockSpi,
};