#javascript #angularjs #breeze
#javascript #angularjs #breeze
Вопрос:
Следующий запрос breeze работает отлично
var manager = emFactory.newManager();
return manager.executeQuery(query).then(querySucceeded);
но когда я добавляю обратный вызов с ошибкой и повторно запускаю приложение
var manager = emFactory.newManager();
return manager.executeQuery(query).then(querySucceeded).fail(function (err) {});
было выдано исключение «неопределенная ошибка не является объектом».
Я некоторое время ломал голову над этим, поэтому буду признателен за любую помощь.
Комментарии:
1. запрос функции выполнен успешно?
2. запрос функции выполнен успешно (данные) { датчики = data.results; log(«Извлеченные датчики с сервера», sensors.length, true); возврат датчиков; };
Ответ №1:
О, я понял.
Это не fail
это catch
.
используйте его следующим образом:
return manager.executeQuery(q).then(success).catch(failed);
редактировать: с помощью
function success(response) {}
и
function failed(error) {}
Комментарии:
1. Ознакомьтесь с образцом promises из официальных документов breezejs.com/sites/default/files/apidocs/classes /… может ли быть, что документы неверны?
2. Похоже, что так. Возможно, это что-то старое и должно быть исправлено. Возможно ли это сделать там?
3. в конце концов, это
catch
происходит из обещания $ q в angular, аfail
— из обещания Q.js? -> документация breeze angular4. Да, это объясняет это, $ q.затем принимает несколько параметров, где в качестве then из Q.js выполняет один обратный вызов и возвращает обещание.
5. Только что заметил это тоже … catch работает, но fail — нет