Azure 移动服务 - table.read().done(function (results)) 返回未定义的值
Azure Mobile Services - table.read().done(function (results)) returning undefined values
编辑:该函数是异步的,因此 console.log 在返回数据之前被触发。我现在将把我的逻辑放在这个 .done()
函数中。
我正在尝试获取结果数组并将其传递给全局变量,但该变量在结果函数之外记录为未定义。
然而,这是我在函数内部需要的数组。
我需要在结果函数之外有一个对象数组,因为我无法在该函数内部进行调试并且有很多代码要编写
这是代码
$scope.syncContacts = function () {
var table = AzureService.getTable('contact');
var contactList = [];
table.read().done(function (results) {
contactList = results;
for (var i = 0; i < results.length; i++) {
console.log("Contact Object:", results[i]);
}
console.log('contact list is : ', contactList);
});
console.log("OUTSIDE FUNCTION LIST", contactList);
};
我一直在四处阅读,看到一个函数 response.send(200, results)
在 azure 表中使用,但不知道它有什么用,也不知道我是否需要它。
contactList
存在变量范围问题,您正在打印外部变量,并在要填充的承诺中创建一个新变量。
var table = AzureService.getTable('contact');
table.read().done(function (results) {
$scope.contactList = results;
for (var i = 0; i < results.length; i++) {
console.log("Contact Object:", results[i]);
}
console.log('contact list is : ',$scope.contactList);
});
这是 AzureService JavaScript 的官方文档:Add Mobile Services to an existing app
编辑:
contactList
由于 promise 解决方案而未定义打印。 done
方法将需要一些时间从服务器获取数据。但是,如果您在 done
内打印它,它将按预期显示结果。你应该把这个值放在一个 $scope
变量中,然后你可以在从服务器读取 returns 数据后使用它:
编辑:该函数是异步的,因此 console.log 在返回数据之前被触发。我现在将把我的逻辑放在这个 .done()
函数中。
我正在尝试获取结果数组并将其传递给全局变量,但该变量在结果函数之外记录为未定义。
然而,这是我在函数内部需要的数组。
我需要在结果函数之外有一个对象数组,因为我无法在该函数内部进行调试并且有很多代码要编写
这是代码
$scope.syncContacts = function () {
var table = AzureService.getTable('contact');
var contactList = [];
table.read().done(function (results) {
contactList = results;
for (var i = 0; i < results.length; i++) {
console.log("Contact Object:", results[i]);
}
console.log('contact list is : ', contactList);
});
console.log("OUTSIDE FUNCTION LIST", contactList);
};
我一直在四处阅读,看到一个函数 response.send(200, results)
在 azure 表中使用,但不知道它有什么用,也不知道我是否需要它。
contactList
存在变量范围问题,您正在打印外部变量,并在要填充的承诺中创建一个新变量。
var table = AzureService.getTable('contact');
table.read().done(function (results) {
$scope.contactList = results;
for (var i = 0; i < results.length; i++) {
console.log("Contact Object:", results[i]);
}
console.log('contact list is : ',$scope.contactList);
});
这是 AzureService JavaScript 的官方文档:Add Mobile Services to an existing app
编辑:
contactList
由于 promise 解决方案而未定义打印。 done
方法将需要一些时间从服务器获取数据。但是,如果您在 done
内打印它,它将按预期显示结果。你应该把这个值放在一个 $scope
变量中,然后你可以在从服务器读取 returns 数据后使用它: