Tag: JavaScript

连锁的承诺没有通过拒绝

我有一个问题,理解为什么拒绝不通过承诺链传递,我希望有人能够帮助我理解为什么。 对我来说,将function附加到一系列的承诺意味着我的意图是我依靠一个原始的承诺来实现。 这很难解释,所以让我首先展示一个我的问题的代码示例。 (注意:这个例子是使用Node和延迟节点模块,我用Dojo 1.8.3testing过,结果相同) var d = require("deferred"); var d1 = d(); var promise1 = d1.promise.then( function(wins) { console.log('promise1 resolved'); return wins;}, function(err) { console.log('promise1 rejected'); return err;}); var promise2 = promise1.then( function(wins) { console.log('promise2 resolved'); return wins;}, function(err) { console.log('promise2 rejected'); return err;}); var promise3 = promise2.then( function(wins) { console.log('promise3 resolved'); return wins;}, […]

删除嵌套的承诺

我不熟悉NodeJS中的使用请求和承诺的承诺和编写networking代码。 我想删除这些嵌套的承诺,并链接他们,但我不知道我会怎么做/是否是正确的路要走。 exports.viewFile = function(req, res) { var fileId = req.params.id; boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken) .then(function(response) { boxViewerRequest('documents', {url: response.request.href}, 'POST') .then(function(response) { boxViewerRequest('sessions', {document_id: response.body.id}, 'POST') .then(function(response) { console.log(response); }); }); }); }; 这是请求代码: var baseContentURL = 'https://api.box.com/2.0/'; var baseViewerURL = 'https://view-api.box.com/1/'; function boxContentRequest(url, accessToken) { return new Promise(function (resolve, reject) { […]

最简单的方法来平整/不平坦的嵌套JSON对象

我将一些代码放在一起,使复杂/嵌套的JSON对象变平和不变。 它的工作,但有点慢(触发'长脚本'的警告)。 我想要的扁平名称“。” 作为数组的分隔符和[INDEX]。 例子: un-flattened | flattened ————————— {foo:{bar:false}} => {"foo.bar":false} {a:[{b:["c","d"]}]} => {"a[0].b[0]":"c","a[0].b[1]":"d"} [1,[2,[3,4],5],6] => {"[0]":1,"[1].[0]":2,"[1].[1].[0]":3,"[1].[1].[1]":4,"[1].[2]":5,"[2]":6} 我创build了一个基准,模拟我的用例http://jsfiddle.net/WSzec/ 获取一个嵌套的JSON对象 压扁它 仔细观察,并可能修改它,同时扁平化 把它放回原来的嵌套格式来运走 我想要更快的代码:为了说明起见,在IE 9 +,FF 24 +和Chrome 29上完成JSFiddle基准( http://jsfiddle.net/WSzec/ )的代码显着更快(〜20%+会更好) +。 以下是相关的JavaScript代码:当前最快: http : //jsfiddle.net/WSzec/6/ JSON.unflatten = function(data) { "use strict"; if (Object(data) !== data || Array.isArray(data)) return data; var result = {}, cur, […]

检查互联网连接是否存在与JavaScript?

你如何检查是否有使用Javascript的互联网连接? 这样,我可以有一些条件说:“在生产过程中使用JQuery的谷歌caching版本,在开发过程中使用或本地版本,取决于互联网连接”。

AngularJS路由没有哈希'#'

我正在学习AngularJS,有一件事情让我非常恼火。 我使用$routeProvider为我的应用程序声明路由规则: $routeProvider.when('/test', { controller: TestCtrl, templateUrl: 'views/test.html' }) .otherwise({ redirectTo: '/test' }); 但是当我在浏览器中导航到我的应用程序时,我看到app/#/test而不是app/test 。 所以我的问题是为什么AngularJS将这个哈希#添加到url? 有没有可能避免它?

如何判断浏览器/选项卡是否处于活动状态

可能重复: 有没有办法来检测浏览器窗口是否目前不活动? 我有一个函数,每秒钟我只想运行,如果当前页面在前台,即用户没有最小化浏览器或切换到另一个选项卡。 如果用户没有看到它,并且可能是CPU密集型的,那么它就没有任何用处,所以我不想在后台浪费周期。 有谁知道如何在JavaScript中告诉这个? 注意:我使用jQuery,所以如果你的答案使用了,那很好:)。

我如何迭代JSON结构?

我有以下JSON结构: [{ "id":"10", "class": "child-of-9" }, { "id": "11", "classd": "child-of-10" }] 如何使用jQuery或JavaScript迭代它?

JavaScript中是否存在“null coalescing”操作符?

Javascript中有一个空合并运算符吗? 例如,在C#中,我可以这样做: String someString = null; var whatIWant = someString ?? "Cookies!"; 我能find的最好的近似值是使用条件运算符: var someString = null; var whatIWant = someString ? someString : 'Cookies!'; 这是不舒服的恕我直言。 我可以做得更好吗?

处理服务中的$ http响应

我最近发布了关于我在SO所面临的问题的详细描述。 因为我无法发送实际的$http请求,所以我使用timeout来模拟asynchronous行为。 从@Gloopy的帮助下,从我的模型查看数据的function是正确的 现在,当我使用$http而不是$timeout (本地testing)时,我可以看到asynchronous请求成功, data在我的服务中填充了json响应。 但是,我的观点并没有更新。 在这里更新了Plunkr

为什么null是一个对象,null和undefined有什么区别?

为什么null在JavaScript中被认为是一个object ? 正在检查 if ( object == null ) Do something 一样 if ( !object ) Do something ? 并且: null和undefined什么区别?