功能分类: Data Applab JavaScript 少儿编程
向指定的 url
发送网络请求,并将请求结果在指定的 callback
回调函数里异步进行处理。
APP 应用并不限于处理应用自己收集或生产的数据。也可以通过向很多提供数据服务的网站发送请求并获取数据。在 Applab 里可以使用 startWebRequest()
方法来向指定的 Web 服务链接发送数据请求,并处理返回数据结果。
指定 callback
回调函数,需要接受返回的三个参数:
var query = encodeURI('select * from weather.forecast where location="98101"');
var url = "https://query.yahooapis.com/v1/public/yql?q=" + query+"&format=json";
startWebRequest(url, function(status, type, content) {
console.log(status);
console.log(type);
console.log(content);
});
示例代码:天气预报 获取天气预报信息并输出到控制台。
// 获取天气预报信息并输出到控制台。
var query = encodeURI('select wind from weather.forecast where location="98101"');
var url = "https://query.yahooapis.com/v1/public/yql?q=" + query+"&format=json";
startWebRequest(url, function(status, type, content) {
if(status == 200) {
var contentJson = JSON.parse(content);
var chill = contentJson.query.results.channel.wind.chill;
var direction = contentJson.query.results.channel.wind.direction;
var speed = contentJson.query.results.channel.wind.speed;
console.log("The current wind chill in Seattle is " + chill + " and caused by a " + speed + "mph wind from " + direction + " degrees direction.");
} else {
console.log("The weather service is not available!");
}
});
示例代码:天气预报 在上面代码基础上增加页面控件,这样就可以获取任何城市的天气预报信息。
// 在上面代码基础上增加页面控件,这样就可以获取任何城市的天气预报信息。
textLabel("instruction", "Type a zip code:");
textInput("zip", "");
textLabel("output", "");
onEvent("zip", "change", function() {
var query = encodeURI('select astronomy from weather.forecast where location="' + getText("zip") +'"');
var url = "https://query.yahooapis.com/v1/public/yql?q=" + query+"&format=json";
startWebRequest(url, function(status, type, content) {
if(status == 200) {
var contentJson = JSON.parse(content);
var sunrise = contentJson.query.results.channel.astronomy.sunrise;
var sunset = contentJson.query.results.channel.astronomy.sunset;
setText("output", "Zip Code:" + getText("zip") + " Sunrise:" + sunrise + " Sunset:" + sunset);
} else {
setText("output", "The weather service is not available!");
}
});
});
startWebRequest(url, function(status, type, content) {
//回调函数代码
});
名称 | 类型 | 必需 | 参数描述 |
---|---|---|---|
url | string | Yes | 指定请求服务地址链接。 |
callback | function | Yes | 请求结束后异步调用的回调函数。三个返回参数会传递给回调函数。 |
没有返回值。但当 startWebRequest() 结束后,会异步调用执行指定的 callback 函数。
startWebRequest()
有一个异步 callback 回调函数,是因为发送网络请求之后不会立刻获得请求结果。通过使用异步回调函数,主代码无需等待。请求结果返回后在这个回调函数里异步处理。startWebRequest()
调用的函数。startWebRequest()
,放在循环里执行。因为循环里不会等异步调用结束才继续执行。