草庐IT

异步处理

全部标签

javascript - task.js 生成器/ promise 与异步回调

我想知道在处理JavaScript中的异步代码时,这两种方法中哪种方法更好。我想了解哪种方法可以生成更清晰的代码。我习惯于使用promises,它们似乎比异步方法(https://github.com/caolan/async)更灵活。我也知道Task.js库(http://taskjs.org/),但这依赖于作为EcmascriptHarmony一部分的yield关键字。 最佳答案 async库封装了几个非常常见的异步模式,包括并行进行任意异步调用和异步迭代列表。它旨在与“nodeback”(err,res)API一起使用,这使得

javascript - jsPDF不处理图像

我正在尝试使用jsPDF库在客户端生成pdf。我的代码看起来像vardoc=newjsPDF();varimgData='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAByCAMAAAAh126/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74

javascript - 多次异步服务调用后的 AngularJS 函数

我有一个RESTAPI,我想像这样从AngularJS服务调用它:angular.module('myModule').service('MyApi',['$http',function($http){return({resources:resources,details:details});functionresources(){return$http.jsonp('/api/resources');}functiondetails(key){return$http.jsonp('/api/details/'+id);}}]);那里删除了其他实现细节,例如不重要的身份验证。API由第

javascript - 为什么仅调用同步函数时 javascript promises 是异步的?

在测试中,我发现JavaScriptPromises总是是异步的,无论它们的链中是否包含任何异步函数。这里是一些代码,显示了控制台中的操作顺序。如果你运行它,你会看到即使每个函数都是同步的,输出显示两个aPromise()调用是并行运行的,并且“令人惊讶的是,这是在运行2完成后发生的”不在运行2完成之前发生。functionaPromise(){returnnewPromise(function(resolve,reject){console.log("makingpromiseA")resolve(bPromise());console.log("promiseAresolved")

javascript - 我可以在解决后强制 jQuery Deferred/Ajax 执行失败处理程序吗?

一个例子来说明我想做什么。这是我通常会做的:functionsuccess(data,status,jqxhr){if(data.error)returnfailure(jqxhr,status,data.error);//processdata}functionfailure(jqxhr,status,err){...}$.ajax(...).done(success).fail(failure)有什么办法,我可以像这样只用匿名函数来完成这个吗?$.ajax(...).done(function(data,status,jqxhr){if(data.error)//whatdoine

javascript - 为什么流行的 JavaScript 运行时不能处理看起来同步的异步脚本?

作为cowboysaysdowninthecommentshere,我们都想“以类似这样的风格编写[非阻塞JavaScript]异步代码:try{varfoo=getSomething();//asynccallthatwouldnormallyblockvarbar=doSomething(foo);console.log(bar);}catch(error){console.error(error);}”所以人们想出了解决这个问题的办法,比如回调库(例如async)promiseseventpatternsstreamlinedomains和generators.但是这些都不会导致

javascript - 有什么方法可以控制 Javascript 异步加载顺序?

如何设置两个外部asyncJavascript文件的加载和执行顺序?鉴于以下...//Largerfile//Smallfile尽管由于文件大小的原因,顺序第二的scripts.js在framework.js之前下载和执行,但是scripts.js是依赖于framework.js。有没有一种方法可以本地指定加载和执行顺序,同时仍然保持async属性? 最佳答案 如果您想保留执行顺序,您需要使用defer。defer的作用是异步下载脚本,但将执行推迟到html解析完成。但是,一旦脚本数量增加,您可能希望开始创建自定义包。你可以看出区别

javascript - Vuex 和 VueJS(不要在变异处理程序之外改变 vuex 存储状态)

我正在尝试创建一个listenAuth函数来监视firebase中的“onAuthStateChanged”以通知vuex商店当用户登录或注销时。据我所知,我只是使用变异处理程序修改state.authData,除非我遗漏了什么?我遇到错误:[vuex]Donotmutatevuexstorestateoutsidemutationhandlers.这是我的App.vuejavascript(来self的组件)//importNavigationfrom'./components/Navigation'import*asactionsfrom'./vuex/actions'import

javascript - 如何在 node.js 中异步递归 API 回调?

API调用返回结果的下“页面”。如何优雅地递归该结果回调?这是我需要执行此操作的示例:varurl='https://graph.facebook.com/me/?fields=posts&since='+moment(postFromDate).format('YYYY-MM-DD')+'&access_token='+User.accessToken;request.get({url:url,json:true},function(error,response,body){if(!error&&response.statusCode==200){_.each(body.posts.

jquery - 在 JQuery 中处理 F5

我有一个站点,我想在其中覆盖F5,这样它就不会刷新页面,而是执行一些ajax调用来刷新某些部分。这可能吗?编辑:因为你们似乎都不明白为什么我想做这样的事情,如果您真的感兴趣,请访问这些链接:开源项目(简单的网络终端):http://code.google.com/p/web-terminal运行简单网络终端的演示:http://web-terminal.net.pine.arvixe.com现场执行(论坛版):http://www.u413.com 最佳答案 好吧,你可以这样做(至少在某些浏览器中,我不确定这是否适用于跨浏览器),但