草庐IT

promise2

全部标签

javascript - 在 Promise 中使用 await

必须将Promise的回调定义为异步似乎存在一些固有的错误:returnnewPromise(async(resolve,reject)=>{constvalue=awaitsomethingAsynchronous();if(value===something){returnresolve('Itworked!');}else{returnreject('Nope.Tryagain.');}});这显然是一个antipattern还有编码problemswhichcanarisefromit.我知道即使在try/catchblock中放置await语句,也更容易在这里捕获错误。我的第

javascript - 如何判断一个 promise 是否已解决?

这个问题在这里已经有了答案:IsthereawaytotellifanES6promiseisfulfilled/rejected/resolved?[duplicate](1个回答)关闭6年前。假设一些代码确实如此//promise.jsletp=newPromise(()=>{/*...*/})exportdefaultp其中Promise是ES6Promise。假设其他一些代码只引用了p。该代码如何判断p是否已解析?//other.jsimportpfrom'./promise.js'//console.log('pisresolved?',______)有没有什么我们可以填空的

javascript - 了解 promise.race() 用法

据我所知,关于promise有两种选择:promise.all()promise.race()好的,我知道promise.all()做了什么。它并行运行promise,如果两者都成功解决,.then会为您提供值。这是一个例子:Promise.all([$.ajax({url:'test1.php'}),$.ajax({url:'test2.php'})]).then(([res1,res2])=>{//Bothrequestsresolved}).catch(error=>{//Somethingwentwrong});但我不明白promise.race()究竟应该做什么?换句话说,不

javascript - Promises 和通用的 .catch() 语句

我正在为我的系统编写一个API,它向服务器发送一个XHR并返回一个应该由调用者处理的promise-到目前为止一切顺利。对于每个API调用,我必须使用.then和.catch调用,但通常(大约75%的时间)是.catch引用了使用console.error简单打印的相同功能。我的问题是-有没有办法为我创建的每个promise附加一个默认的catch语句?(比如说打印到控制台),以及我想要的每个promise进一步处理拒绝,我会添加另一个.catch调用(甚至覆盖它)?每个调用都有自己的.catch的简化示例:http://jsbin.com/waqufapide/edit?js,con

javascript - AngularJS - 如何取消 promise ?

这个问题在这里已经有了答案:HowtoputadelayonAngularJSinstantsearch?(13个答案)关闭7年前。假设我有一个输入文本字段(更像Google搜索字段),当它发生变化时,将触发请求并显示一些结果。例如,让我们在输入中输入Dog:typedD->Callsctrl.search('D')->Makesarequest->ChangesmodelwhensuccesstypedDO->Callsctrl.search('DO')->Makesarequest->ChangesmodelwhensuccesstypedDOG->Callsctrl.search

javascript - 当关键字后的表达式未计算为 promise 时, `await` 会发生什么情况?

我有这样的ES7代码。asyncfunctionreturnsfive(){varthree=3;varthreeP=awaitthree;returnthreeP+2;}returnsfive().then(k=>console.log(k),e=>console.error("err",e))varthreeP=awaitthree行应该发生什么?代码应该按预期继续,还是失败,因为three不是一个promise?在thisrepo,它被称为“有争议的语法和语义”。我无法通读官方文档来找到确切的定义,因为它太技术化了。默认的babel.js转换按预期记录5;然而,nodent-一个

javascript - 未捕获( promise )DOMException : Quota exceeded

我正在尝试查看demoofofflinestatus从下面的链接,我得到DOMException:Quotaexceeded。https://serviceworke.rs/offline-status_demo.html此错误仅发生在chrome中。它在firefox中工作正常,在firefox中没有错误。错误发生在serviceworker的install事件中。ServiceWorker的代码在下面发布以供引用。///serviceworker-cookbook/offline-status/varCACHE_NAME='dependencies-cache';//Filesre

javascript - 与 jsdom 开 Jest ,文档在 Promise 解析中未定义

场景尝试使用Jest(和Enzyme)测试一个简单的React组件。该组件使用react-dropzone,我想测试一些涉及DOM的操作,所以我使用jsdom(已由create-react-app配置)问题document对象虽然在我的测试代码中可用并且在组件内部可用,但在dropzoneonDrop回调中是undefined,这会阻止测试运行。代码MyDropzoneimportReactfrom'react'importDropzonefrom'react-dropzone'constMyDropzone=()=>{constonDrop=(files)=>{fileToBase6

javascript - Reactjs promise ,我们应该如何使用它?

过去3天我阅读了很多关于React的资料,但我没有看到太多关于使用promise的信息,所以我有那个顾虑。有这方面的图书馆吗?我应该如何在React中使用promises? 最佳答案 React没有像Angular那样带有$http的promise库。你必须找到你自己的。一些你可以尝试的:Bluebird(个人推荐)jQuery的$ajaxnativepromise(除非您实际上必须支持IE):http://caniuse.com/#feat=promises 关于javascript-

javascript - AngularJS-ng :model - Field is readonly when bound to $q promise?

我试图从AngularJs(1.0.7)中的promise返回单个记录并将结果绑定(bind)到表单。表单正确绑定(bind),但输入字段是只读的-我无法编辑值。如果我改为将记录包装在一个数组中并使用ng:repeat进行迭代,则表单会正确绑定(bind)并且我可以编辑值。我创建了一个plnkr来清楚地展示这个问题:http://embed.plnkr.co/fOWyhVUfekRbKUSRf7ut/preview您可以编辑直接绑定(bind)和列表绑定(bind)的输入字段,但是不能编辑绑定(bind)到单个promise的字段。是否可以将ng:model直接绑定(bind)到从pr