gpt4 book ai didi

javascript - Azure 移动服务 - table.read().done(function (results)) 返回未定义的值

转载 作者:行者123 更新时间:2023-11-29 21:45:27 25 4
gpt4 key购买 nike

编辑:该函数是异步的,因此在返回数据之前触发了 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 存在变量范围问题,您正在打印外部变量,并在要填充的 promise 中创建一个新变量。

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 变量中,然后你可以在读取从服务器返回数据后使用它:

关于javascript - Azure 移动服务 - table.read().done(function (results)) 返回未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com