一次性数据请求
说明超级块从发起请求到收到结果的过程。
Documentation content is currently available in Simplified Chinese.
页面需要在刷新或搜索时获取一份数据,可以使用数据提供者。例如,天气卡片点击刷新时请求最新天气,后台返回结果,页面更新显示。
#发起请求
页面调用 FlyonDeckWidget.requestData(providerId, input)。宿主找到该页面对应的已放置实例,确认提供者属于这个超级块类型,然后检查输入 Schema。
页面传入业务输入即可。设备、屏幕、块 ID 和实例配置由宿主补入后台请求,处理函数通过 request.instance 和 request.settings 读取。
#处理与响应
宿主调用 dataProviders[providerId](request, context)。函数返回后,宿主按 responseSchema 和 maxBytes 检查结果,再把它发给原页面,完成对应 Promise。
返回值只属于这次请求。页面希望重新获取时,再发起请求;多个页面需要持续共享同一个当前值时,使用状态来源。
#超时与错误
输入不合法、后台失败或请求超时时,页面 Promise 拒绝。页面可以在 catch 中显示失败状态,并让用户再次刷新。后台执行时间由提供者的 timeoutMs 设置,页面等待上限为 35 秒。
声明字段见 dataProviders,函数参数见 DataProviderHandler。