草庐IT

promise-then

全部标签

javascript - 如何在使用 isomorphic-fetch 进行异常处理 promise 后解析 json

在使用React、Redux、isomorphic-fetch、ES6Babel实现登录功能期间。问题我不知道如何在checkstatuspromise之后正确组合promise,以便从我的服务器获取已解析的JSON数据。我在这里做错了什么?还有,我需要用其他更方便的包替换isomorphic-fetch包吗?欢迎对其他包装提出任何建议!loginAction.jsimport*asAPIfrom'../middleware/api';import*asActionTypesfrom'../actionTypes/authActionTypes';import'isomorphic-f

javascript - 管理 promise 依赖

我正在使用Node.js和Bluebird创建一些相当复杂的逻辑,包括解压缩结构化文件、解析JSON、创建和更改多个MongoDB文档以及在多个位置写入相关文件。根据发生错误时系统的状态,我还对所有这些进行了相当复杂的错误处理。我很难想出一种通过promise流来管理依赖关系的好方法。我现有的代码基本上是这样的:vardoStuff=function(){vardependency1=null;vardependency2=null;promise1().then(function(value){dependency1=value;returnpromise2().then(funct

javascript - Promise.resolve(promise) 的用例是什么?

我们可以调用Promise.resolve(value)以及Promise.resolve(promise)。我可以理解应该在何处以及如何使用第一个调用,但不确定第二个调用。为什么不首先简单地使用promise作为参数呢?我的意思是打电话:promise1.then()代替:Promise.resolve(promise1).then()? 最佳答案 Promise.resolve基本上是“我不在乎这是什么,给我一个promise”。通常,每当你得到一个论点时,可能是一个promisePromise.resolve是使用它的正确方法

JavaScript Promise.all - 如何检查解析状态?

比方说,我有一个promise数组,每个元素都是一个AJAX调用,用于获取View的图像(png)。constimages=Promise.all(views.map(view=>{returnfetch(`/sites/${siteId}/views/${view.id}/image/`);}));是否有可能使用Promise.all检查promise解决的当前状态?如果不行,还有其他办法吗?例如,如果下载了10/20张图片,我想给用户一个反馈,我们已经为他下载了50%图片。 最佳答案 每当promise解决时,只需增加一个变量:

javascript - 将变量传递给javascript中的异步函数( promise )

我有以下循环运行的代码:varindex=fileNames[x].lastIndexOf("/")+1;varcurrentImageName=fileNames[x].substr(index);if(currentImageName.indexOf(".jpg")!=-1){reader.getFileAsBlob(fileNames[x]).done(function(blob){picturesFilePathArray.push({fileName:currentImageName,fileURL:blobURL(blob)});refreshKMZList();});}我

javascript - 使用 mocha 的内置 promise 支持测试失败的 promise

这个问题在这里已经有了答案:HowdoIproperlytestpromiseswithmochaandchai?(4个答案)关闭6年前。我应该如何使用mocha和chai来测试我的promise是否失败?我很困惑,因为我最初认为我应该使用'mocha-as-promised',但是那包现在已弃用(我正在使用mocha2.1.0),并建议只需使用现在内置于mocha中的promise测试。参见:https://github.com/domenic/mocha-as-promised另一篇文章建议取消对it()回调-不确定我明白为什么,因为我的理解是传递“完成”参数是表示测试已经完成的方

javascript - 从 Promise.all 合并许多数组

当Promise.all完成时,它返回一个包含数据的数组。在我的例子中,数组只是数字:[[1,4,9,9],[4,4,9,1],[6,6,9,1]]数组可以是任意大小。目前我正在这样做:letnums=[]data.map(function(_nums){_nums.map(function(num){nums.push(num)})})有没有其他方法可以做到这一点?lodash是否有任何功能可以做到这一点? 最佳答案 ES2019介绍Array.prototype.flat这大大简化了这一点:constnums=data.flat

javascript - 加载文件后如何将 promise 错误传播到更高的 promise 级别?

我正在使用bluebird开发异步脚本加载器我正在努力将错误传递到我可以捕获它的地方。加载文件后,我将调用名为declare的方法,如下所示:declare("storage",[{"name":'util',"src":'../src/util.js'}],function(util){varstorage={};//...stuffwithutilreturnstorage;});声明是:declare=function(name,dependency_list,callback){varresolver;//digestpromisesreturnedforeachmodulef

javascript - 使用 EventListener 解决 promise

我正在处理一个弹出式div,我想在动画上附加一个promise,这样我就可以在弹出式窗口结束后做一些事情。我的方法不起作用,因为我找不到将promise传递给事件处理程序上的函数的方法。似乎你不能在这里使用bind。我已经尝试过,虽然我可以解决promise,但我无法删除事件处理程序这里会有什么不同的解决方案?functionEventListenerForPopUp(){this.removeEventListener("animationend",EventListenerForPopUp);this.Show.resolve();}functionShowHideDiv(){th

javascript - 如何在异步/等待语法中使用 Promise.prototype.finally()?

实际上我的主要问题是在async/awaitES8语法中使用Promise.prototype.catch(),毫无疑问是Promise。prototype.then()存在于async/await语法的本质中。我搜索了关于在async/await中使用Promise.prototype.catch()并找到了这个:async()=>{try{constresult1=awaitfirstAsynchronousFunction();constresult2=awaitsecondAsynchronousFunction(result1);console.log(result2);}c