wilddog(野狗)js sdk和promise(bluebird)的结合使用
来源:互联网 发布:大数据分析师招聘 编辑:程序博客网 时间:2024/05/01 19:04
最近在学习Node,并使用Node在做第一个(图片分享类)小项目,把学习中的点滴记录下来,以后可以温故而知新...
服务器端:
Node + Wilddog(野狗) 0.7.2 + (...)
众所周知因为Node的异步特点,在使用中会出现大量的回调函数,陷入回调地狱,回调会让我们无法正常的 return / throw 等。。
如:
function showdata(){ var data=[]; //此处是各种回调嵌套取得data(此处我使用的是wilddog); return data}上面的函数首先返回的是一个空的数据数组data(在很多类似的情况中可能会产生各种莫名奇妙的意外错误);
那么下面会渲染一个空数据的页面:
router.get('/', function(req, res) { var data = showdata(); render("index",{ data:data })})
怎么才能获取到数据后再去渲染页面呢?
Promise 更多关于promise的信息请自行百度查询。
为什么用bluebird?发现大家都比较推崇就跟随潮流吧。。。
bluebird 自行构造
new Promise(function(function resolve, function reject) resolver) -> Promise
更多api信息请查阅 bluebird api
wilddog的使用:
on ( type , callback , [cancelCallback] , [context] )
var wilddog = require('wilddog');var ref = new Wilddog("https://<appId>.wilddogio.com/student");ref.on("value",function(snapshot){//获取到数据快照},function(e){//错误处理});简单示例:把wilddog的on事件监听promise化:
var onQuery = function(ref,event){ return new Promise(function (resolve,reject) { ref.on(event,function (snapshot) { resolve(snapshot); },function(err){ reject(err); }); });}
使用:
var ref = new wilddog('https://<appid>.wilddogio.com/student'); onQuery(ref,"value").then(function (data) { console.log("成功"+data); }).catch(function (err) { console.log("错误"+ err); })
0 0
- wilddog(野狗)js sdk和promise(bluebird)的结合使用
- Bluebird-NodeJs的Promise
- 野狗(wilddog)帮助类
- JS的promise和extJS的promise的使用
- bluebird.js - 让所有浏览器都支持 ES6 Promise 对象
- 微信小程序和野狗数据库结合
- Promise-Bluebird源码
- nodejs-使用request和bluebird编写的http请求模块
- 野狗API的初步使用
- 使用reveal.js和wilddog实现移动端控制web端PPT展示
- async 和await的结合promise用法
- mongoose数据查询之bluebird的使用
- promise架构和node.js的promise用法
- JS split和for的结合使用
- TypeScript和Knockout.js的结合使用
- 利用bluebird的promise 实现nodejs http下载异步调用的同步逻辑
- js中promise的使用与理解
- bluebird promise化之循环方法
- 2631: tree
- 【疑问笔记】window.onload vs $(document).ready vs defer
- ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
- 使用shape 自定义ui之渐变半圆阴影
- 常用SQL语句总结(3)
- wilddog(野狗)js sdk和promise(bluebird)的结合使用
- 日期控件WdatePicker
- 移位运算(乘、除、余)
- __block __weak漫谈基础集合类(NSArray,NSSet,NSOrderedSet,NSDictionary,NSMapTable,NSHashTable, NSPointerArra
- js循环数组各种方法array 汇总-基础
- 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法
- 顶尖数据恢复软件官方正式版
- 四大JavaEE容器之简单比较
- border:medium none,