草庐IT

promise-style

全部标签

javascript - Angular : chaining promises over forEach loop

我无法理解promise。我正在使用GoogleEarthAPI进行地址“游览”。游览只是一个持续大约一分钟的动画,一个完成后,下一个应该开始。这是我的巡视功能:vartourAddress=function(address){returntourService.getLatLong(address).then(function(coords){returntourService.getKmlForCoords(coords).then(function(kml){_ge.getTourPlayer().setTour(kml);_ge.getTourPlayer().play();v

javascript - 级联 promise

任何超出简单promise的事情通常都会让我感到困惑。在这种情况下,我需要对N个对象连续执行2个异步调用。首先,我需要从磁盘加载一个文件,然后将该文件上传到邮件服务器。我更喜欢同时执行这两个操作,但我已经通过先执行所有读取然后再执行所有上传来使其正常工作。下面的代码有效,但我不禁认为它可以做得更好。我不明白的一件事是为什么when.all不拒绝。我对文档的解释似乎暗示,如果其中一个promise被拒绝,则.all将被拒绝。为了测试错误,我已经注释掉了较低的分辨率。没有错误,事情似乎工作正常并且有意义。mail_sendOne({from:'greg@',to:'wilma@',subj

javascript - 结束 Promise 链

我遇到了一个关于未终止的Promise链的Promise警告(“一个Promise是在处理程序中创建的,但没有从它返回”)。我是Promises的新手,怀疑我在不应该的时候使用了非事件驱动的思维。但我不确定如何进行。这一切都在一个nodejs项目中。我正在与ZWave服务器交互以打开和关闭灯。该交互采用向控制ZWave网络的服务器发出http请求的形式。由于通过http进行交互的异步性质,我正在使用Promises。在我的程序的一个级别上,我定义了以下类方法:ZWave.prototype.onOff=function(nodeNumber,turnOn){varself=this;v

javascript - 实现 Promise.all

这个问题在这里已经有了答案:JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭6年前。exercises之一在EloquentJavascript这本书的第17章是实现Promise.all()方法,我想出了这个实现(不起作用):functionall(promises){returnnewPromise(function(success,fail){varsuccessArr=newArray(promises.length);if(promises.length==0)success(successArr);va

javascript - NodeJS 和 pg-promise,捕获 PostgreSQL 异常

我正在使用PostgreSQL后端运行NodeJS和pg-promise。我创建了自己的TRIGGER,它在某些情况下会抛出异常。到此为止一切正常。但是使用pg-promise我很难捕捉到错误的名称。使用这段代码:....catch(function(err){console.log(err);});我得到以下输出:[{success:false,result:{[error:vote_limit_exceeded]name:'error',length:80,severity:'ERROR',code:'P0001',detail:undefined,hint:undefined,p

javascript - 异步函数返回 Promise { <pending> }?

我有以下异步函数:asyncfunctionreadFile(){letcontent=awaitnewPromise((resolve,reject)=>{fs.readFile('./file.txt',function(err,content){if(err){returnreject(err)}resolve(content)})})console.log(content)}readFile()这运行得很好。它按预期将文件缓冲区输出到控制台。但是现在,如果我尝试返回值:asyncfunctionreadFile(){letcontent=awaitnewPromise((res

javascript - 将 forEach() 与 promise 一起使用,同时在 .then() 链中访问先前的 promise 结果?

我有以下promise的功能:constajaxRequest=(url)=>{returnnewPromise(function(resolve,reject){axios.get(url).then((response)=>{//console.log(response);resolve(response);}).catch((error)=>{//console.log(error);reject();});});}constxmlParser=(xml)=>{let{data}=xml;returnnewPromise(function(resolve,reject){letp

Javascript 如何通过解构将 promise.spread 语法迁移到异步/等待

我正在清理一些sequelize代码,findOrCreate函数返回一个需要展开才能获得实际结果对象的promise。我想重写我的代码以使用await代替,并且鉴于ES6支持数组解构,我认为用它代替User.findOrCreate({where:{mcId},defaults}).spread((user,created)=>{//dostuff})我能做到const[user,created]=awaitUser.findOrCreate({where:{mcId},defaults})但事实并非如此。我收到错误(intermediatevalue)isnotiterable执行

javascript - Promise.then(a, b) 和 Promise.then(a).catch(b) 一样吗?

这个问题在这里已经有了答案:Whenis.then(success,fail)consideredanantipatternforpromises?(7个答案)关闭4年前。有什么区别myPromise.then(a,b)myPromise.then(a).catch(b)?无论myPromise的内容和状态以及函数a和b的实现如何,这两个JavaScript表达式是否总是产生相同的结果?除了代码可读性之外,在什么情况下我应该更喜欢使用其中一种?

javascript - 为什么 .then() 在没有 JavaScript promise 的情况下工作?

为什么调用第二个函数.then(notPromise)仍然将参数传递给第三个函数.then(promiseC)即使notPromise()只是一个常规函数?我认为只有promises可以与.then()一起使用,但它仍然以某种方式正确执行(并传递参数)。promiseA().then(notPromise).then(promiseC);functionpromiseA(){returnnewPromise(function(resolve,reject){conststring="a";resolve(string);});}functionnotPromise(string){co