【使用Js实现Promise库】教程文章相关的互联网学习教程文章

javascript – then()在node.js中解析promise之前的回调触发【代码】

参见英文答案 > setTimeout() is not waiting 3个使用node.js版本7.7.2,我想执行一个异步函数,然后在第一个函数完成后执行不同的函数,如下所示:function foo() {return new Promise(function(resolve, reject) {// Do some async stuffconsole.log('foo is about to resolve');resolve();}); }function bar(arg) {console.log(arg); }foo().then(bar('bar has fired')); 问题是这个设置打印’...

为什么JavaScript的’Promise.all`在失败条件下没有运行所有承诺?【代码】

根据MDN:If any of the passed in promises rejects, the all Promise immediately rejects with the value of the promise that rejected, discarding all the other promises whether or not they have resolved.ES6 spec似乎证实了这一点. 我的问题是:为什么Promise.all会丢弃承诺,如果他们中的任何一个拒绝,因为我希望它等待“所有”承诺解决,“丢弃”究竟是什么意思? (很难说“丢弃”对于飞行中的承诺与可能尚未运行的承诺...

javascript – 如何为promise.all提供承诺数组?【代码】

我正在尝试并行运行函数数组,当每个人都完成时我想要对该结果进行处理.我正在使用承诺.现在,我可以将所有函数放在一个数组中并且可以执行Promise.all(函数数组)但我有阵列喜欢[[promise1, promise2], [promise3,promise4], [promise5,promise6]],每个承诺都是承诺的功能.Promise参考文档说Promise.all中的参数应该是一个可迭代的对象,我的数组是可迭代的.但这对我不起作用.我认为它正在执行[promise1,promise2]作为承诺而不是个人承...

javascript – jQuery Deferred and Promise用于顺序执行同步和异步函数【代码】

如果我想以特定的顺序执行同步和异步函数,我可以使用jQuery promise,但它看起来并不像我期望的那样工作. 函数a,b和c应该在调用deferred.resolve()时以该顺序执行我希望函数b被执行但是无论是否调用了resolve,所有函数都会立即执行. 这是代码:function a(){var deferred = $.Deferred();setTimeout(function(){console.log("status in a:",deferred.state());//this should trigger calling a or not?deferred.resolve("from a");}...

javascript – 在for循环中创建一个promise链【代码】

我希望下面的代码在控制台上打印一个数字,然后等待一秒,然后打印另一个数字.相反,它立即打印所有10个数字,然后等待十秒钟.创建一个行为如上所述的承诺链的正确方法是什么?function getProm(v) {return new Promise(resolve => {console.log(v);resolve();}) }function Wait() {return new Promise(r => setTimeout(r, 1000)) }function createChain() {let a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];let chain = Promise.resolve();for...

为什么javascript ES6 Promises在解决后会继续执行?【代码】

据我所知,promise是可以解决()或拒绝()但我很惊讶发现在调用解析或拒绝后,promise中的代码继续执行. 我认为解决或拒绝是退出或返回的异步友好版本,这将停止所有立即执行功能. 有人可以解释为什么以下示例有时会在解析调用后显示console.log的想法:var call = function() {return new Promise(function(resolve, reject) {resolve();console.log("Doing more stuff, should not be visible after a resolve!");}); };call().then(f...

javascript – 如何使用fetch返回promise回调的返回值?【代码】

参见英文答案 > How do I return the response from an asynchronous call? 35个我有点难过.我忘记了怎么做.我有一个名为ext.get()的函数,它接受url的参数.它从网址获取响应. ext.get()函数用于将响应作为json返回.我不认为这样做.ext.get = (url) => {let myHeaders = new Headers();let options = {method: 'GET',headers: myHeaders,mode: 'cors'};//fetch getfetch(url, options).then(res...

在JavaScript API for Office中使用promises(ctx.sync)编写循环的最佳方法【代码】

有许多线程讨论如何保证循环中promises的执行顺序.我想知道Office API加载项JavaScript API的最佳实践.大多数情况下,有问题的承诺是ctx.sync(). 这是一个逐个打印Excel范围列表地址的代码段.测试表明它很好地尊重Excel范围的顺序.但问题是是否以及如何保证执行顺序?function loadAll () {var ranges = ["A:A", "B:B", "C:C", "D:D", "E:E"];var sheet = "Sheet1";for (var i = 0; i < ranges.length; i++) {loadRange(ranges[i], ...

javascript – Promise的主体什么时候执行?【代码】

假设我有以下承诺:function doSomethingAsynchronous() {return new Promise((resolve) => {const result = doSomeWork();setTimeout(() => {resolve(result);}), 100);}); }在哪个时间点调用doSomeWork()?是在承诺之后还是在承诺之后?如果没有,是否还有一些我需要明确做的事情以确保Promise的主体运行?解决方法:立即,是的,按照规范. 从the MDN开始:The executor function is executed immediately by the Promise implementa...

javascript – 如何处理未捕获(在promise中)DOMException:play()请求被pause()调用中断【代码】

下面是我在aspx页面中的代码,允许在浏览器中播放wav格式的音频但是使用我当前的代码我无法在Chrome浏览器中播放wav音频,但它可以在mozilla firefox中运行.如何处理此异常<script>window.onload = function () { document.getElementById("audio").play(); }window.addEventListener("load", function () { document.getElementById("audio").play(); });</script> <body><audio id='audio' controls autoplay><source src="Sounds/...

javascript – 如何将参数传递给promise函数【代码】

这似乎是一个愚蠢的问题,但我是这个主题的新手.我正在研究节点js上的promises.我想将参数传递给promise函数.但是我无法理解.someModule.someFunction.then(username, password,function(uid) {/*stuff */ }和功能是类似的var someFunction = new Promise(username, password, function(resolve, reject) {/*stuff using username, password*/if ( /* everything turned out fine */ ) {resolve("Stuff worked!");} else {reject(Er...

javascript – 在本机ES6承诺中,Bluebird Promise.IIally的等价物是什么?【代码】

参见英文答案 > ES6 promise settled callback? 7个Bluebird提供了一种finally方法,无论您的承诺链中发生什么,都会被调用.我发现它非常方便用于清洁目的(比如解锁资源,隐藏装载机……) 在ES6原生承诺中是否存在等价物?解决方法:截至2018年2月7日 Chrome 63,Firefox 58和Opera 50支持Promise.finally. 在Node.js 8.1.4(V8 5.8)中,该功能位于标志--harmony-promise-finally后面. Promise.protot...

javascript – 在不使用Promise的情况下按顺序执行回调【代码】

我试图按顺序执行函数runCallbacksInSequence执行以下函数的数组(避免callbackHell)(我需要实现自己的函数来理解回调如何工作并避免使用Async.js).这是我到目前为止所拥有的.我不太明白回调是如何工作的,这就是我做这个练习的原因.如果您有任何想法让我知道我做错了什么以及如何解决它.function first(cb) {console.log('first()');cb(); } function second(cb) {console.log('second()');cb(); } function third(cb) {console.log...

javascript – jQuery递归AJAX调用Promise【代码】

我还在试图弄清楚如何在递归的AJAX调用中使用jQuery延迟对象.我有这样的代码function request(page, items){ //building the AJAX return value for JSFiddle dummy AJAX endpointvar ret = {totalPage: 10,currentPage: page,items: []};for (var i = page; i < (page + 5); i++){ret.items.push(i);}//calling the AJAX$.ajax({url: '/echo/json/',method: 'POST',dataType: 'json',data: {delay: 1,json: JSON.stringify(ret...

javascript – Promise.then工作执行顺序【代码】

The spec says(第5段):The PendingJob records from a single Job Queue are always initiated inFIFO order. This specification does not define the order in whichmultiple Job Queues are serviced. An ECMAScript implementation mayinterweave the FIFO evaluation of the PendingJob records of a JobQueue with the evaluation of the PendingJob records of one or moreother Job Queues.这是否意味着我不能指望提供给回...

PROMISE - 相关标签
JAVASCRIPT - 技术教程分类
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语... JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JavaScript Window JavaScript Window Location JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JavaScript 库 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 javascript 全部