草庐IT

promised-mongo

全部标签

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

javascript - 链式 jQuery promises with abort

我目前正在编写API代码,其中包含多层深度的$.ajax()调用。一个要求是用户必须能够取消任何请求(例如,如果它花费的时间太长)。通常这是通过一些简单的事情来完成的,比如:varjqXHR=$.ajax(..);$(mycancelitem).click(function(){jqXHR.abort();});但是我的代码看起来更像这样:functionmyapicall(){varjqxhr=$.ajax(…);varprms=def.then(function(result){//modifytheresultherereturnresult+5;});returnprms;}这

javascript - 用 Bluebird 链接递归 promise

我有一个promise链,中间有一个递归promisedoAsyncRecursive(),如下所示:doAsync().then(function(){returndoAsyncRecursive();}).then(function(){returndoSomethingElseAsync();}).then(function(result){console.log(result);}).catch(errorHandler);doAsyncRecursive()必须做一些事情,如果一开始没有成功,我之后想每5秒尝试一次,直到它成功。这是我的promise函数的样子:functio