Я работаю над гибридным приложением (только для себя) с Framework7, и почти все работает нормально.Я хочу привести в порядок код и переместить некоторый повторяющийся код в функцию.Но теперь я получаю сообщение об ошибке
ReferenceError: Не могу найти переменную: resol
Я только изучаю JS, и последние пару дней я узнал больше о области действия и контексте, но не могувыяснить, почему я получаю эту ошибку.Как я понимаю, поскольку функция обратного вызова resol () определена во внешней области, я должен иметь возможность вызывать ее из своей пользовательской функции?
Когда я помещаю app.request (), где моя функция getJson ()это работает.Тем не менее, запрос все еще работает из getJson (), и я вижу, что данные зарегистрированы, но функция разрешения не будет работать должным образом.
routes = [
{
path: '/person/abc/',
async: function (routeTo, routeFrom, resolve, reject) {
var router = this;
var app = router.app;
var jwt = store.get('jwt');
app.preloader.show();
getJson(
jwt,
{document:'person'},
'Test',
'-/-'
);
},
},
];
function getJson(jwt, data, title, note) {
app.request({
url: 'https://example.com/json/',
method: 'GET',
dataType: 'json',
crossDomain: true,
data: { data },
headers: { Authorization: 'Bearer ' + jwt },
success: function(data, textStatus){
if (data.status === 'ALLOW') {
console.log('Data received');
resolve(
{
componentUrl: './pages/person.html',
},
{
context: {
title: title, note: note, person: data.person,
}
}
);
} else {
app.dialog.alert('Error loading data');
}
app.preloader.hide();
return;
},
error: function(xhr, textStatus, errorThrown){
console.log('Error', xhr.response);
app.preloader.hide();
app.dialog.alert('Error on request');
return;
}
});
}