gpt4 book ai didi

ios - Azure 表插入中传入值的递增值

转载 作者:行者123 更新时间:2023-11-28 21:11:34 24 4
gpt4 key购买 nike

我是一名 iOS 开发人员,目前正在 iOS 中使用 Azure 移动服务 SDK。

就我而言,我为每个用户提供一个唯一的 ID,即表中的“myid”,即“todomytable”。在 todomytable.js 文件中,我正在检查 myid 值。如果来自设备的“myid”的值小于表中存储的值,则我会将大于表中先前存储值的传入值增加一。以下是我在 todomytable.js 中的逻辑

    table.insert(function (context) {

context.item.userId = context.user.id;
//....
var intIncomingID = context.item.myid; //ID coming from mobile device
//Call back to get max value of 'myid' from Table
var myFunction = function( callback) {
var query = {
sql: 'select MAX(myid) from TodoItem'
};
context.data.execute(query).then(function (results) {
var objectTest = eval(JSON.stringify(results));
var tempObject = objectTest[0];
var previuosIntID = tempObject["MAX(myid)"];
callback(previuosIntID);
});
};


myFunction(function(returnValue) {
console.log("returnValue is : "+returnValue);
if (intIncomingID<=returnValue)
{
console.log('IF');
context.item.userId = context.user.id;
returnValue = returnValue+1;
context.item.myid = returnValue;
console.log("UPDATED value is : "+context.item.myid);
}
else{
context.item.myid = intIncomingID;
console.log("ITEM value is :"+intIncomingID);
}
return context.execute();
});
});

但问题是表格没有更新,并且在移动日志中我收到如下网络请求超时错误

{Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."}

谁能建议如何解决这个问题?我必须在表中按递增顺序存储“myid”。我是 Node.js 新手,如果我犯了任何愚蠢的错误,我很抱歉。

最佳答案

很可能在某个时刻发生异常,导致 promise 被拒绝。由于没有定义 Promise 异常处理程序,异常最终会被“吞没”。请尝试以下操作:

var table = module.exports = require('azure-mobile-apps').table()

table.insert(function (context) {
context.item.userId = context.user.id;

var intIncomingID = context.item.myid; //ID coming from mobile device
var query = { sql: 'select MAX(myid) from TodoItem' };

return context.data.execute(query)
.then(function (results) {
var tempObject = results[0];
var previousIntID = tempObject["MAX(myid)"];

console.log("previous ID is : " + previousIntID);

if (intIncomingID <= previousIntID) {
context.item.myid = previousIntID + 1;
console.log("UPDATED value is : " + context.item.myid);
} else {
context.item.myid = intIncomingID;
console.log("ITEM value is :" + intIncomingID);
}

return context.execute();
});
});

一些注意事项:

  • context.data.execute 返回一个 promise - 我们从 insert 函数返回此 promise ,以便移动应用运行时处理任何被拒绝的 promise
  • context.execute 也返回一个 promise ;我们将返回此内容,以便正确“链接” promise

希望这有帮助!

关于ios - Azure 表插入中传入值的递增值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42904450/

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