草庐IT

promise2

全部标签

node.js - 如何在 Q 中按顺序链接可变数量的 Promise?

IhaveseenChaininganarbitrarynumberofpromisesinQ;myquestionisdifferent.如何按顺序进行可变数量的调用,每个调用都异步返回?场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果决定。我想简单地做到这一点。我也看过thisanswer这暗示了这样的事情:varq=require('q'),itemsToProcess=["one","two","three","four","five"];functiongetDeferredResult(prevResult){return(function(someResul

node.js - 如何在 Q 中按顺序链接可变数量的 Promise?

IhaveseenChaininganarbitrarynumberofpromisesinQ;myquestionisdifferent.如何按顺序进行可变数量的调用,每个调用都异步返回?场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果决定。我想简单地做到这一点。我也看过thisanswer这暗示了这样的事情:varq=require('q'),itemsToProcess=["one","two","three","four","five"];functiongetDeferredResult(prevResult){return(function(someResul

javascript - 如何等待一个 promise 被解决?

我正在处理一个NodeJs框架,它需要某个函数是同步的,但我需要检索一个只能异步访问的值。在一个完美的世界里,我可以返回一个promise,但我不能。作为一个快速而简单的解决方案,我创建了以下方法:exports.synchronizePromise=function(promise){varvalue;promise.then(function(promiseValue){value=promiseValue;});while(!value){}//Waitforpromisetoresolveconsole.log("DONE:"+value);//Neverreachedretu

javascript - 如何等待一个 promise 被解决?

我正在处理一个NodeJs框架,它需要某个函数是同步的,但我需要检索一个只能异步访问的值。在一个完美的世界里,我可以返回一个promise,但我不能。作为一个快速而简单的解决方案,我创建了以下方法:exports.synchronizePromise=function(promise){varvalue;promise.then(function(promiseValue){value=promiseValue;});while(!value){}//Waitforpromisetoresolveconsole.log("DONE:"+value);//Neverreachedretu

JavaScript 异步编程 : promises vs generators

Promises和生成器允许您编写异步代码。我不明白为什么在ECMA脚本6中引入了这两种机制。什么时候最好使用Promise,什么时候最好使用生成器? 最佳答案 这两种技术之间没有对立:它们共存在一起,相得益彰。Promises允许您获取异步操作的结果,该操作目前尚不可用。它解决了PyramidofDoom问题。所以而不是:functionourImportantFunction(callback){//...somecode1task1(function(val1){//...somecode2task2(val1,functio

JavaScript 异步编程 : promises vs generators

Promises和生成器允许您编写异步代码。我不明白为什么在ECMA脚本6中引入了这两种机制。什么时候最好使用Promise,什么时候最好使用生成器? 最佳答案 这两种技术之间没有对立:它们共存在一起,相得益彰。Promises允许您获取异步操作的结果,该操作目前尚不可用。它解决了PyramidofDoom问题。所以而不是:functionourImportantFunction(callback){//...somecode1task1(function(val1){//...somecode2task2(val1,functio

javascript - 使用 ES6 的 Promise.all() 时限制并发的最佳方法是什么?

我有一些代码正在遍历从数据库中查询出来的列表,并为该列表中的每个元素发出HTTP请求。该列表有时可能是一个相当大的数字(以数千计),我想确保我不会访问具有数千个并发HTTP请求的Web服务器。此代码的缩写版本目前看起来像这样......functiongetCounts(){returnusers.map(user=>{returnnewPromise(resolve=>{remoteServer.getCount(user)//makesanHTTPrequest.then(()=>{/*snip*/resolve();});});});}Promise.all(getCounts(

javascript - 使用 ES6 的 Promise.all() 时限制并发的最佳方法是什么?

我有一些代码正在遍历从数据库中查询出来的列表,并为该列表中的每个元素发出HTTP请求。该列表有时可能是一个相当大的数字(以数千计),我想确保我不会访问具有数千个并发HTTP请求的Web服务器。此代码的缩写版本目前看起来像这样......functiongetCounts(){returnusers.map(user=>{returnnewPromise(resolve=>{remoteServer.getCount(user)//makesanHTTPrequest.then(()=>{/*snip*/resolve();});});});}Promise.all(getCounts(

javascript - 如何使用 Promises 链接和共享先前的结果

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个回答)关闭6年前。我正在使用bluebird库,需要发出一系列HTTP请求,并且需要一些响应数据到下一个HTTP请求。我已经构建了一个函数来处理我的请求,称为callhttp()。这需要一个url和一个POST的正文。我这样调用它:varpayload='{"Username":"joe","Password":"password"}';varjoin=Promise.join;join(callhttp("172.16.28.200",payload

javascript - 如何使用 Promises 链接和共享先前的结果

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个回答)关闭6年前。我正在使用bluebird库,需要发出一系列HTTP请求,并且需要一些响应数据到下一个HTTP请求。我已经构建了一个函数来处理我的请求,称为callhttp()。这需要一个url和一个POST的正文。我这样调用它:varpayload='{"Username":"joe","Password":"password"}';varjoin=Promise.join;join(callhttp("172.16.28.200",payload