javascript - 移动优先 - 加密缓存成功和失败处理程序

标签 javascript local-storage method-chaining jsonstore ibm-mobilefirst

在 MobileFirst V6.3 中,一旦我们调用 JSON Store API,就可以使用 .then().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);

如何处理类似于 JSON Store 的加密缓存 API 链调用[避免每个 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...}
); 

关于javascript - 移动优先 - 加密缓存成功和失败处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981345/

相关文章:

javascript - 如何判断 pc.onnegotiationneeded 是否因为流已被删除而被解雇?

javascript - socketstream 能否作用于服务器中的 ss.event.on

javascript - 如何在 Angular 中模拟 $http 成功?

javascript - 从本地存储动态重新填充表行

javascript - 本地存储 : Storing data individually VS one big String?

java - 是否可以使用非 void 的 setter 反序列化 yaml 文档?

jquery - jQuery 是否采用了向后的方法链接方法?

javascript - Mongoose - 无法读取未定义的属性 'push'

javascript - 为什么浏览器会触发我的 onclick 函数?

javascript - JS : how to create optionally chainable methods