小编Gil*_*tzi的帖子

socket.io:断开连接事件 - 'transport close','client namespace disconnect','transport error'和'forced close'

使用socket.io v1.2.1(仅使用"轮询"传输),有时我的客户端会断开连接.

我有大约50%的时间使用ping timeout断开连接事件回调函数,这是合理的.

其他时候,我得到transport close,client namespace disconnect,transport errorforced close.我在文档中没有找到任何关于断开原因的参考,并且无法从代码中真正理解它们的含义.

我想确保我以最好的方式处理每个断开连接(并且可能阻止它们).

也许有人可以对这些原因有所了解.

javascript html5 node.js socket.io

11
推荐指数
2
解决办法
9744
查看次数

Promise和泛型.catch()语句

我正在为我的系统编写一个API,它将XHR发送到服务器并返回一个应该由调用者处理的promise - 到目前为止一直很好.

对于每个API调用,我必须使用.then.catch调用,但通常(如75%的时间).catch引用相同的功能,只使用打印console.error.

我的问题是 - 有没有办法为我创建的每个promise附加一个默认的catch语句?(让我们说打印到控制台),对于我希望进一步处理拒绝的每个承诺,我会添加另一个.catch调用(甚至覆盖它)?

每个调用都有自己的.catch的简化示例:http://jsbin.com/waqufapide/edit?js,console

试图实现所需行为的非工作版本:http://jsbin.com/nogidugiso/2/edit?js,console

在第二个示例中,deferred.promise我返回一个附加catch()处理程序的promise ,而不仅仅是返回:

return deferred.promise.catch(function (error) {
  console.error(error);
});
Run Code Online (Sandbox Code Playgroud)

这两个then渔获物和then函数调用在这种情况下.

我确实知道Q暴露了getUnhandledReasons()函数和onerror事件,但我真的不想.done()用于每个promise,也不构建某种定时器/间隔来处理未处理的拒绝列表.

其他库,如bluebird暴露onPossiblyUnhandledRejection事件,我不得不承认这是一个更好的解决方案,但仍然不是我正在寻找的.

javascript promise q bluebird

10
推荐指数
1
解决办法
1004
查看次数

React Native - `require()` 语句异常处理

TL;DR:我希望能够require插入模块react-native并自己处理异常,以防模块不存在(而不是显示RedBox)。


当给定请求的区域设置时,我使用moment.js的逻辑从其预设库(https://github.com/moment/moment/tree/develop/locale )中选择最合适的区域设置。

例如,如果请求en-us,但未找到,则会回落至 ,en依此类推。此逻辑的代码 ( chooseLocale, loadLocale) 可以在这里找到: https: //github.com/moment/moment/blob/develop/src/lib/locale/locales.js

基本上,它会尝试给require定的预设。如果它不存在,它将从require语句中获取异常,捕获它并继续执行下一个选项。

现在,我的问题是尝试将此逻辑与react-native. 该require语句实际上是用react-native's实现的guardedLoadModule,它处理异常(显示红屏)。在我看来,moment的逻辑并没有受到这种逻辑的伤害,因此我想RedBox不显示 。

有什么想法吗?

javascript android ios momentjs react-native

6
推荐指数
1
解决办法
1583
查看次数

Redux - 调度异步操作时更改URL

在我的React/Redux应用程序中,我有一些异步操作.假设用户getData向服务器发起请求.立即GET_DATA_REQUEST被分派和getDataAJAX调用是在它的途中到服务器.

成功或失败后,将相应地分派一个GET_DATA_SUCCESS或多个GET_DATA_FAILURE动作,并将数据呈现给UI.

现在,我希望我的应用程序将历史状态(使用react-router-redux)作为对AJAX回调的反应.意思是,一旦成功,用户被"重定向"到另一个URL(路由),显示依赖于新接收的数据的不同模块.

我意识到在reducer中使用这个功能是一个非常糟糕的主意,因为它不再是纯粹的(URL更改是副作用).

有什么想法吗?

谢谢

reactjs react-router redux redux-thunk react-router-redux

1
推荐指数
2
解决办法
4695
查看次数