Releases: leancloud/javascript-sdk
v2.0.0-beta.1
Features
- 支持微信小程序 0.10.101100
v2.0.0-beta.0
Breaking Changes
-
移除了所有 Backbone callbacks 回调风格的参数,请使用 Promise 处理异步操作的结果:
// Backbone callback 回调风格的参数的用法 object.save(null, { success: function(object) {}, error: function(error, object) {}, }); // 需要替换为 object.save().then( function(object) {}, function(error) {} );
-
AV.Promise
现在是一个满足 Promises/A+ 标准的实现,所有非标准的方法已被移除,所有非标准的行为已被修正。关于标准 Promise 的更多信息推荐阅读 《JavaScript Promise 迷你书》 -
如果你 extend 的
AV.Object
子类重写了validate
方法,当属性无效时现在需要 throw 一个 Error(之前是 return 一个 Error)。相应的,AV.Object#set
方法如果 set 的值无效,需要通过 try catch 捕获异常(之前通过检查返回值是 false)// 之前的用法 var Student = AV.Object.extend('Student', { validate: function(attibutes) { if (attributes.age < 0) return new Error('negative age set'); } }); var tom = new Student(); if (tom.set('age', -1) === false) { console.error('something wrong'); } else { tom.save(); } // 现在的用法 var Student = AV.Object.extend('Student', { validate: function(attibutes) { if (attributes.age < 0) throw new Error('negative age set'); } }); var tom = new Student(); try { tom.set('age', -1); } catch (error) { console.error(error.message); } tom.save();
-
AV.Query
中的大部分 API 启用了更加严格的参数检查。特别的,对于以下 API,当指定 value 的值为undefined
时会抛出异常(之前会直接忽略这个条件或限制)- 参数形如
(key, value)
类型的条件限制 API,如AV.Query#equalTo(key, value)
AV.Query#limit(value)
AV.Query#select(value)
- 参数形如
-
AV.Query#get
方法现在尊重 Class 的 get 权限设置(之前检查的是 find 权限) -
AV.User#_linkWith
的第二个参数中的options.authData
字段提升为第二个参数// 之前的用法 user._linkWith('weixin', { authData: { access_token: 'access_token' }, }); // 现在的用法 user._linkWith('weixin', { access_token: 'access_token' });
-
移除了 deprecated 的 API,包括:
AV.Object#existed
AV.User.requestEmailVerfiy
(typo)AV.useAVCloudCN
AV.useAVCloudUS
AV._ajax
AV._request
Bug Fixes
- 修复了应用内社交模块的方法在未登录状态下传入了 sessionToken 仍然抛未登录异常的问题
Features
- 对象存储功能支持微信小程序
- 绝大部分会发起网络请求的 API(如保存一个对象)支持通过
option.useMasterKey
参数指定该次操作是否要使用 masterKey,设置了该选项的操作会忽略全局的 useMasterKey 设置
v1.5.0
v1.4.0
v1.4.0-beta.0
-
支持 ES2015 的 extends 语法来声明
AV.Object
的子类,增加了AV.Object.register
方法用于注册声明的子类。class Article extends AV.Object {} AV.Object.register(Article);
-
AV.Query
支持查询AV.File
-
修复多次调用
AV.Object.extend('ClassName')
后可能导致堆栈溢出的问题 -
修复
AV.Query#addDescending
没有返回 query 的问题,现在支持链式调用了 -
修复 React Native 0.32 中找不到
react-native
模块的问题