gpt4 book ai didi

asynchronous - 我可以在浏览器中使用Dart异步/等待发帖请求吗?

转载 作者:行者123 更新时间:2023-12-03 02:57:08 29 4
gpt4 key购买 nike

我以https://webdev.dartlang.org/articles/get-data/json-web-service为例,以此为起点开发了使用API​​端点数据的Dart应用程序:

void saveData() {
HttpRequest request = new HttpRequest(); // create a new XHR

// add an event handler that is called when the request finishes
request.onReadyStateChange.listen((_) {
if (request.readyState == HttpRequest.DONE &&
(request.status == 200 || request.status == 0)) {
// data saved OK.
print(request.responseText); // output the response from the server
}
});

// POST the data to the server
var url = "http://127.0.0.1:8080/programming-languages";
request.open("POST", url, async: false);

String jsonData = '{"language":"dart"}'; // etc...
request.send(jsonData); // perform the async POST
}

我将其视为发生某些情况时运行的传统回调。在这里,它在收到响应时执行。

不过,我想尝试其他方法,例如使用Futures / Promises或async / await。

是否可以将此示例转换为浏览器中的任何替代方案?

如果是这样,您能否请举例说明将其实现为Future或async / await时的外观?

最佳答案

我同意@Pacane关于使用http软件包的意见。它为处理http请求提供了更加简洁的API,使您可以轻松使用async / await。

但是,您可以按如下方式仅使用核心库来编写saveData(dartpad示例:https://dartpad.dartlang.org/2ed9e39fd887b58532d42a70697ce9cd)

Future<Null> saveData() async {
var response = await HttpRequest.postFormData(
'http://127.0.0.1:8080/programming-languages',
{'language': 'Dart'});
print(response.responseText);
}

关于asynchronous - 我可以在浏览器中使用Dart异步/等待发帖请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42053734/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com