es6-promise相关内容
据我所知,承诺是可以解决()或reject()的,但是我很惊讶,发现承诺中的代码在解决或拒绝被调用后继续执行。 我认为解决或拒绝是一个异步友好版本的退出或返回,这将停止所有即时功能执行。 有人可以解释以下示例有时在解析调用后显示console.log: var call = function(){ 返回新的承诺(功能(解决,拒绝){ resolve(); console.
..
承诺,例如 var P = new Promise(function(resolve,reject){ var a = 5; 如果(a){ setTimeout(function(){ resolve(a); },3000); } else { reject(a); } }); 我们在promise后调用方法: P.then(的doWork(
..
考虑这个代码片段,函数 b 获得承诺,并在解决问题时调用自身,以获得另一个承诺: var a = function(){ var timeout = 1000; 让time_promise = new Promise((resolve,reject)=> { let success = false; setTimeout(()=> { document.getEleme
..
我只是想提高我对JavaScript承诺工作原理的理解。我创建了以下情况: LOG'FOO' 运行回拨LOGGING'CALLBACK' LOG'BAR' 期望所有功能立即完成 意味着他们不会花费过多/未知的时间来完成您将使用异步操作来完成),以便上述操作顺序将按照该顺序进行。 你可以这样写: function foo(cb){ // LOG'FOO
..
我试图用babel来编译包含es6承诺的文件。我已经安装了babel-cli,babel-preset-es2015,babel-plugin-es6-promise。 我的.babelrc配置是: { “预设”:[“es2015”], “plugins”:[“es6-promise”] } 我已经用require()里面编译了js文件,但是我根本不想使用req
..
我正在尝试通过获取和处理智能处理API的成功/错误响应。 ES6承诺。 这是我需要如何处理响应状态: 204:没有json响应,但需要对待成功 406:应该重定向到登录 422:有json的错误消息 = 400(但不是422):错误,不会有json 所以,我很努力地写这个干净的。 我有一些比恒星代码
..
当使用JavaScript fetch API从服务器请求时,您必须执行类似 fetch(API) .then(response => response.json()) .catch(err => console.log(err)) 这里, response.json()正在解决其承诺。 事情是,如果你想抓住 404 的错误,你必须解决响应承诺,然后拒绝提交承
..
ECMAScript 6.0规范对于 Promise 解决另一个 Promise 是什么?应该通过将然后附加到 Promise 中的另一个 Promise code>这将解决这个问题? 我在Chrome中尝试过这个代码段,这里是我得到的,似乎只是解决了 Promise1 与 Promise2 是不是很好? > Promise1 = new Promise(function(res
..
我有一个我回来的承诺的场景。 承诺基本上给出ajax请求的响应。 在拒绝承诺时,会显示错误对话框,显示服务器错误。 do是当响应代码为401时,我既不想解决承诺也不拒绝它(因为它显示错误对话框)。我想简单地重定向到登录页面。 我的代码看起来像这样 code> function makeRequest(ur,params){ return new Promise(fu
..
我正在尝试使用本机进行异步循环ES6承诺它 的作品,但不正确。我想我在某个地方犯了一个很大的错误,我需要有人告诉我它在哪里,以及它是如何正确地完成的。 var i = 0; //创建样例解析器 函数payloadGenerator(){ 返回函数(resolve){ setTimeout(function(){ i ++; resolve(); },300) } }
..
在异步中,如果我需要将一个异步功能应用于1000个项目,我可以做with: async.mapLimit(items,10,(item,callback)=> { foo item,callback); }); ,以便只同时处理10个项目,限制开销并允许控制。 > 随着ES6的承诺,我可以很容易地做到: Promise.all items.map(
..
我想履行一些其他承诺的承诺。关键是,我真的希望在第一个承诺得到满足后立即访问(仍在等待)第二个承诺。不幸的是,只有这两个承诺都满足,我似乎才能得到第二个承诺的解决方案价值。 这里是我想到的用例: var picker = pickFile(); picker.then(//等待用户选择一个文件 函数(downloadProgress){ //用户选择一个文件,该文件可能无法
..
可以 ES6类将作为组织模式提供给异步代码以下是ES7 async / await的一个例子,ES6类可以有一个异步方法,还是ES7中的构造函数? 我可以这样做: class Foo { async constructor(){ let res = await getHTML(); this.res = res } } 而且,如果不是一个构造函数应该如何
..
class PersistedPromise扩展Promise {} 然后调用派生类上的静态 resolve 直接创建解决的承诺: p> PersistedPromise.resolve(1) 在traceur中,这将产生: ModuleEvaluationError:#在新的PersistedPromi
..
我有一个循环,它调用一个异步执行的方法。这个循环可以多次调用该方法。在这个循环之后,我有另一个循环,只有当所有异步的东西完成时才需要执行。所以这说明了我的想法: for(i = 0; i
..
如何链接延迟功能。我尝试了以下内容: Promise.resolve() .then(setKeyframe('keyframe-0')) .then(delay(3000)) .then(setKeyframe('keyframe-1')) .then(delay(3000)) .then(setKeyframe keyframe-2')) ; 函数delay(ms){
..
通常来说,创建延迟对象通常不鼓励使用ES6风格的Promise构造函数。有没有必要(或者仅仅是以某种方式)使用延期的情况? 例如,在 this page ,以下示例作为使用deferred的理由: 函数delay(ms){ var deferred = Promise.pending(); setTimeout(function(){ deferred.resolve();
..
例如 p = new Promise(function(resolve,reject){ throw'err' }); p.done(); 在大多数promise polyfill lib中,done将抛出一个错误,当前的执行将退出。 / p> 但是,如果我们使用 p.then(),则不会发生任何事情。错误被承诺所吞噬。如果我们使用 p.catch
..
假设我有一个 Promise.all()来处理两个承诺。如果一个承诺产生错误,但另一个解决方案,我希望能够根据 Promise.all()已经解决的情况处理错误。 / p> ES6承诺缺少解决方法,我假设有一个很好的理由。但是我不禁想到, .settle()方法会使这个问题对我来说容易很多。 我正在以错误的方式进行这种做法,还是以一种解决方法来扩展ES6 Promises在这里做的正确
..
我想要运行相同的动作,无论我的承诺是否成功解决。我不想将相同的函数绑定到 .then 的两个args。是不是有一个 .always 像jQuery有?如果没有,我该如何实现? 解决方案 没有一个 .always like jQuery has? 否,还没有(还)。虽然积极的提案,也许是ES2018。 如果没有,我该如何实现? 你可以实现终于方法本身就是这样的:
..