jjzjj

javascript - for 循环中的 Promise 链

for(variinlistofInstances){cleanupInstance(listofInstances[i]).then(function(){console.log("Done"+listofInstances[i])});}cleanupInstance也是一个promise链。然而,目前我的for循环在整个promise链完成之前进入下一次迭代。有没有办法也promise循环?我正在使用Bluebird库(nodejs)来实现promise。 最佳答案 你可以使用.each:varPromise=require(

javascript - 什么时候需要创建延迟?

现在通常不鼓励创建延迟对象,而倾向于使用ES6风格的Promise构造函数。是否存在需要(或以某种方式更好)使用延迟的情况?例如,在thispage上,下面的例子给出了使用延迟的理由:functiondelay(ms){vardeferred=Promise.pending();setTimeout(function(){deferred.resolve();},ms);returndeferred.promise;}然而,这也可以通过Promise构造函数来完成:functiondelay(ms){returnnewPromise(function(resolve,reject){s

javascript - Javascript promise 中的错误处理

我有一些Javascript代码通过一些同步后处理来做一些异步的事情,然后再做一些异步的事情(XHR->解析XHR->基于第一个的新XHR)。我没有完成错误处理:/*API*/functiongetFile(name){return$.ajax({url:name+".json"}).then(function(data){returndata.id},handleError)}functionhandleError(errorObj){if(errorObj.status){returnerrorObj.status}else{returnerrorObj}}functionmyAp

javascript - 我如何推迟像 jquery Deferred 这样的 ES6 promise?

1。使用es6promise,但语法不正确。我正在使用es6,并且想做一个延迟的确认对话框://First,createanemptypromise:letpromise=newPromise((resolve,reject)=>{})//Then,showthedialog:let$dialog=$('#dialog-confirm').show();//FAIL:Iwanttotriggerthepromiseresolver,butfailed.$dialog.find('.btn-yes').click(()=>{promise.resolve();})$dialog.find

javascript - 如何通过 worker.onerror 在 promise 中冒泡网络 worker 错误?

我正在处理一个需要在发生错误时进行报告的网络worker。通常,我可以使用worker.onerror来监听从worker抛出的任何错误。但是,当错误发生在webworker的promise中时,我无法弄清楚如何将错误冒泡回worker.onerror。请原谅奇怪的代码片段,因为这似乎是展示工作人员行为的唯一方法。(worker在HTML部分中定义)。functiongetInlineJS(){varjs=document.querySelector('[type="javascript/worker"]').textContent;varblob=newBlob([js],{"typ

javascript - 有没有一种很好的方法来 Promise.all 具有 promise 属性的对象数组?

如果我有一组promise,我可以简单地使用Promise.all来等待它们。但是当我有一个对象数组时,每个对象都有一些promises的属性,有没有好的方法来处理它?例子:constfiles=urlOfFiles.map(url=>({data:fetch(url).then(r=>r.blob()),name:url.split('/').pop()}))//whattodoheretoconverteachfile.datatoblob?//likePromise.all(files,'data')orsomethingelse 最佳答案

javascript - 为 promise.all 中的每个 promise 设置超时

我能够成功执行Promise.all,并优雅地处理解决和拒绝。然而,有些promise会在几毫秒内完成,有些可能/可能需要一段时间。我希望能够为Promise.all中的每个Promise设置超时,这样它最多可以尝试花费5秒。getData(){varthat=this;vartableUrls=['http://table-one.com','http://table-two.com'];varspoonUrls=['http://spoon-one.com','http://spoon-two.com'];vartablePromises=that.createPromise(ta

javascript - node.js + 请求 => node.js + bluebird + 请求

我正在尝试了解如何使用promises编写代码。请检查我的代码。这样对吗?Node.js+请求:request(url,function(error,response,body){if(!error&&response.statusCode==200){varjsonpData=body;varjson;try{json=JSON.parse(jsonpData);}catch(e){varstartPos=jsonpData.indexOf('({');varendPos=jsonpData.indexOf('})');varjsonString=jsonpData.substrin

javascript - 当 promise 在 javascript 中产生时会发生什么?

没有找到完整的答案..当promise被yield时会发生什么?是这样的构造varp=newPromise()p.resolve(value)function*(){yieldp}相当于function*(){yieldvalue}?更新如何混合使用不同风格的异步编程,例如koa这样的框架?Koa中间件与生成器一起工作,但是有很多基于promise的好包(例如sequelize) 最佳答案 正如Felix所说,promise只是要产生的另一种值(value)。但是,有一种编写异步代码的风格,它以特定方式使用yieldedpromis

javascript - 当回调采用多个参数时如何 promise 一个函数

有什么方法可以在回调接受两个以上参数的情况下promisify一个函数?一个例子是node的fs.read,回调的三个参数是err、bytes和data。data参数没有传递给then函数,所以这个记录未定义:varfs=require('fs');varPromise=require('bluebird');varopen=Promise.promisify(fs.open);varread=Promise.promisify(fs.read);open('test.txt','r').then(function(fd){varbuffer=newBuffer(1024);read(