我试图将下面的Node.js代码片段转换为Dart。在我的转换中,只要有响应,就会立即打印'data returned ...'消息,与Node.js版本不同,该版本等待页面完成所请求的2秒延迟。NodeJs在飞镖中请求回调
Node.js的
var http = require('http')
function fetchPage() {
console.log('fetching page');
http.get({ host: 'trafficjamapp.herokuapp.com', path: '/?delay=2000' }, function(res) {
console.log('data returned from requesting page');
}).on('error', function(e) {
console.log("There was an error" + e);
});
}
飞镖
import 'dart:io';
import 'dart:uri';
fetchPage() {
print('fetching page');
var client = new HttpClient();
var uri = new Uri.fromComponents(scheme:'http', domain: 'trafficjamapp.herokuapp.com', path: '?delay=2000');
var connection = client.getUrl(uri);
connection.onRequest = (HttpClientRequest req) {
req.outputStream.close();
};
connection.onResponse = (HttpClientResponse res){
print('data returned from requesting page');
};
connection.onError = (e) => print('There was an error' ' $e');
}
如何实现达特相同延迟打印中的节点?提前致谢。
谢谢。我现在看到,我可以在名为参数的路径前添加'/',以使我的代码也可以工作,但使用查询名称参数可以使意图更加清晰。 – basheps