移动优先 - 加密缓存成功和失败处理程序
Mobile first - Encrypted Cache Success and Failure Handler
在 MobileFirst V6.3 中,一旦我们调用 JSON 存储 API,就可以使用 .then() & [= 捕获成功和失败22=].fail().要链接 API 调用,我们可以使用多个 .then()。比方说,
WL.JSONStore.startTransaction()
.then(function () {
var data = [{name: 'carlos'}];
return WL.JSONStore.get(collectionName).add(data);
})
.then(function () {
var docs = [{_id: 1, json: {name: 'carlos'}}];
return WL.JSONStore.get(collectionName).remove(docs);
})
.then(function () {
return WL.JSONStore.commitTransaction();
})
.fail(function (errorObject) {
WL.JSONStore.rollbackTransaction()
.then(function () {
// Handle rollback success.
})
.fail(function () {
// Handle rollback failure.
})
});
因为加密缓存 API 有自己的 API 回调方法,如下所示。
WL.EncryptedCache.open(credentials, create_if_none, onCompleteHandler, onErrorHandler);
如何处理加密缓存 API 链调用类似于 JSON Store[避免每个 API 调用的回调方法]?
如果它不是开箱即用的,是否有任何变通方法可以实现同样的效果。
摘录会有帮助。
- 推荐使用 JSONStore。
- 开箱即用不支持链接回调。
方法是让某人为使用回调的方法实现包装器。如果您坚持这样做,则需要实现如下所示的内容:
function wrapper() {
var myVar = $.Deferred();
Wl.EncryptedCache.open(credentials, create_if_none, myVar.resolve, myVar.reject);
return myVar;
}
来自用户的代码:
wrapper.then(
function() {success flow...},
function() {failure flow...}
);
在 MobileFirst V6.3 中,一旦我们调用 JSON 存储 API,就可以使用 .then() & [= 捕获成功和失败22=].fail().要链接 API 调用,我们可以使用多个 .then()。比方说,
WL.JSONStore.startTransaction()
.then(function () {
var data = [{name: 'carlos'}];
return WL.JSONStore.get(collectionName).add(data);
})
.then(function () {
var docs = [{_id: 1, json: {name: 'carlos'}}];
return WL.JSONStore.get(collectionName).remove(docs);
})
.then(function () {
return WL.JSONStore.commitTransaction();
})
.fail(function (errorObject) {
WL.JSONStore.rollbackTransaction()
.then(function () {
// Handle rollback success.
})
.fail(function () {
// Handle rollback failure.
})
});
因为加密缓存 API 有自己的 API 回调方法,如下所示。
WL.EncryptedCache.open(credentials, create_if_none, onCompleteHandler, onErrorHandler);
如何处理加密缓存 API 链调用类似于 JSON Store[避免每个 API 调用的回调方法]?
如果它不是开箱即用的,是否有任何变通方法可以实现同样的效果。
摘录会有帮助。
- 推荐使用 JSONStore。
- 开箱即用不支持链接回调。
方法是让某人为使用回调的方法实现包装器。如果您坚持这样做,则需要实现如下所示的内容:
function wrapper() {
var myVar = $.Deferred();
Wl.EncryptedCache.open(credentials, create_if_none, myVar.resolve, myVar.reject);
return myVar;
}
来自用户的代码:
wrapper.then(
function() {success flow...},
function() {failure flow...}
);