设计代码工作流程
Designing code work flow
我正在制作一些代码来与API交互,为了使用API,您需要获得用于其余请求的会话密钥,该会话密钥将在一段时间后变为无效,因此代码也需要准备好重新验证。
代码本身与API无关,因为这是一个关于如何设计代码流的问题,我正在寻找最好的方法。
我这里没有代码(javascript/note.js),但这里是它在伪代码中的基本外观:
function getResult {
data = foobar
return getData(data, callback)
}
function getData(data, callback) {
*building query (including the session-key) and getting data via http*
if error == noauth
auth()
// What should happen here, I need to rerun the query
else
callback(result)
}
function auth {
data = foobar
getData(data, callback(?))
// it returns a session-key to use
//What should happen here?
}
我会做一些类似的事情:
function GetAuth(auth_params)
{
// get session key
return session key;
}
function MyAPIWorker(auth_params)
{
this._auth_params = auth_params;
this._current_auth = null;
}
MyAPIWorker.prototype.do(action)
{
if (this._current_auth == null)
{
this._current_auth = GetAuth();
}
var result = action(this._current_auth);
if (result == no_auth_error)
{
this._current_auth = GetAuth();
result = action(this._current_auth);
}
return result;
}
然后使用它:
worker = new MyAPIWorker(/* auth params here */);
worker.do(function (sessionKey) { /* do something with session key */});
/** blah blah **/
worker.do(function (sessionKey) { /* do other something with session key */});
工人将为你搬运所有重物。。。
相关文章:
- Don't工作警报代码jQuery
- Javascript - 错误“未定义不是函数”在以前工作的代码上引发
- 设计代码工作流程
- 什么是完美的工作流程来处理A,B和amp;其中A取决于B,B取决于C
- 工作流程/选项以扩展其他选项
- 通过登录和在线照片显示上传照片的工作流程
- Rails 4:资产管道的正常CSS/JS开发工作流程
- Bluebird 不会调用 then(),即使使用之前工作的代码也是如此
- 在适当的工作流程中将第三方JS库添加到Ionic
- Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
- PHP和Javascript日志完整的工作流程
- 了解eclipse项目的性质和web开发的工作流程
- 显示更多在HTML中不能正常工作的代码
- 如何控制页面加载工作流程
- 关于用ANGULAR.js编写8步应用的工作流程的建议
- 程序js测试工作流程
- 确定一个bug是浏览器的错误还是我自己的错误的工作流程是什么?
- 我不能理解这段代码的工作流程
- 临时编码工作流程
- 使用AJAX发送数据到控制器不工作,代码点火器