for(variinlistofInstances){cleanupInstance(listofInstances[i]).then(function(){console.log("Done"+listofInstances[i])});}cleanupInstance也是一个promise链。然而,目前我的for循环在整个promise链完成之前进入下一次迭代。有没有办法也promise循环?我正在使用Bluebird库(nodejs)来实现promise。 最佳答案 你可以使用.each:varPromise=require(
现在通常不鼓励创建延迟对象,而倾向于使用ES6风格的Promise构造函数。是否存在需要(或以某种方式更好)使用延迟的情况?例如,在thispage上,下面的例子给出了使用延迟的理由:functiondelay(ms){vardeferred=Promise.pending();setTimeout(function(){deferred.resolve();},ms);returndeferred.promise;}然而,这也可以通过Promise构造函数来完成:functiondelay(ms){returnnewPromise(function(resolve,reject){s
我能够成功执行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
我正在尝试了解如何使用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
有什么方法可以在回调接受两个以上参数的情况下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(
我正在编写一些目前看起来像这样的代码,因为我的代码中有依赖项。我想知道使用Promise.all()是否有更简洁的方法来做到这一点?这是我的伪代码:returnsomeService.getUsername().then(function(username){user=username;}).then(function(){returnsomeService.getUserProps(user);}).then(function(userProps){userProperties=userProps;returnsomeService.getUserFriends(user);}).t
我什么时候应该使用哪个?以下是一样的吗?新的Promise()示例:functionmultiRejectExample(){returnnewPromise(function(resolve,reject){if(statement){console.log('statement1');reject(thrownewError('error'));}if(statement){console.log('statement2');reject(thrownewError('error'));}});}Promise.try()示例:functiontryExample(){return
这个问题在这里已经有了答案:JavaScript"this"referenceswrongobject[duplicate](3个答案)关闭6年前。我正在尝试编写一个具有返回promise和promise链的方法的类。此尝试从do_that()返回错误我理解使用“this”的问题,这就是为什么我使用self=thiskludge,但我仍然遇到错误。TypeError:Cannotreadproperty'name'ofundefined.除了这个问题,我该如何解决这个问题,有没有更简洁的方法来做到这一点?varPromise=require('bluebird');classmyCla
这个问题在这里已经有了答案:HowtostructurenestedPromises(3个答案)关闭6年前。我是一名API开发人员,通常编写需要将结果从一个异步调用传递到另一个异步调用(也称为异步waterfall)的端点。我通常使用promises以下列方式执行此操作:task1().then(result1){task2(result1).then(result2){task3(result2).then(result3){//APIresponse}).catch(function(err){//Task3handleerr})}).catch(function(err){//T
这个问题在这里已经有了答案:HowdoIconvertanexistingcallbackAPItopromises?(24个答案)关闭7年前。我如何用promise包装一个可以在内部具有同步/非同步功能的函数?我已经调用了下面的函数action[fn](req,res);在函数fn(在下面的例子中)运行可以有内部(我对每个函数使用动态调用)同步或像下面的例子那样异步,Howitsrecommendedtowrapitinpromise.Howtohandleerrorsifany...我使用nodeJS应用程序run:function(req,res,filePath){varwri