wordpress - 在颤振等待woocommerce休息api中等待消息
问题描述
我使用带有颤振的 woocommerce rest api 来获取产品变化。Woocommerce rest api 太慢了,无法获得这种变化。我需要向用户发送一条消息以等待该过程完成。如何将此消息放入代码中?
@override
Future<List<ProductVariation>> getProductVariations(Product product,
{String lang = 'en'}) async {
try {
final List<ProductVariation> list = [];
int page = 1;
while (true) {
String endPoint =
"products/${product.id}/variations?per_page=100&page=$page";
if (kAdvanceConfig["isMultiLanguages"]) {
endPoint += "&lang=$lang";
}
var response = await wcApi.getAsync(endPoint);
if (response is Map && isNotBlank(response["message"])) {
throw Exception(response["message"]);
} else {
if (response is List && response.isEmpty) {
/// No more data.
break;
}
for (var item in response) {
if (item['visible']) {
list.add(ProductVariation.fromJson(item));
}
}
/// Fetch next page.
page++;
}
}
return list;
} catch (e) {
//This error exception is about your Rest API is not config correctly so that not return the correct JSON format, please double check the document from this link https://docs.inspireui.com/fluxstore/woocommerce-setup/
rethrow;
}
}
有什么帮助吗?
解决方案
参考这个小例子:
class Waitscreen extends StatefulWidget {
Waitscreen ({Key key}) : super(key: key);
@override
_WaitscreenState createState() => _WaitscreenState();
}
class _WaitscreenState extends State<Waitscreen> {
bool _isLoading = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: RaisedButton(
child: Text(_isLoading ? "Loading..." : "Load"),
onPressed: () async {
setState((){_isLoading = !_isLoading;});
// TODO
await Future.delayed(Duration(seconds: 5)); // await getProductVariations...
// TODO
setState((){_isLoading = !_isLoading;});
}
),
),
);
}
}
然后你可以根据你的需要做一些事情!
推荐阅读
- .net - 计算图像旋转 2 点
- c# - 如何处理奇怪的 HTML 字符?HtmlAgilityPack
- sql - EXISTS/NOT EXISTS 是如何工作的?
- php - I can't return json from Laravel 5.5 Validator
- c - 在c中处理多行字符串
- css - '*/' 在 CSS 中是什么意思?
- arrays - 声明 VBA 数组和 If 函数
- python - 我无法在 Windows 7 64 位版本中安装 python 3.6.5。我应该怎么办?
- python-3.x - Python repr/str NoneType 没有属性
- python - 可以放入 shebang 的 Unix 解释器包装器