Я играю с Windows 8 Metro SDK atm, но столкнулся с некоторыми проблемами с помощью WinJS.xhr. Если вместо возврата WinJS.xhr в функцию getData я возвращаю некоторый объект json, все работает нормально, но я хочу вернуть объект json, созданный запросом xhr.Вернуться к результатам запроса WinJS.xhr
Что не так в моей попытке здесь? Благодаря!! :)
(function() {
"use strict";
function getData() {
return WinJS.xhr({ url: "http://stackoverflow.com" }).done(
function (request) {
var results = [];
var Item = {
title: "title",
text: "some text goes here"
}
results.push(Item);
return results;
},
function (request) {
var results = [];
results.push({ title: "error", text: "error text" });
return results;
}
);
}
var categoryList = new WinJS.Binding.List(getData());
var publicMembers = { itemList: categoryList };
WinJS.Namespace.define("Data", publicMembers);
})();
Это не имеет смысла возвращать результаты из асинхронных обработчиков. – Pointy
Если я объявляю 'var results = []' перед использованием WinJS и возвращать его потом, он вообще не изменяется, поэтому я попытался вернуть вещь. Каков правильный способ сделать это? – ahoereth
Вы должны сделать свой API асинхронным. Пусть функция передается вашей функции, а затем вызывает ее из обработчика «success». – Pointy