javascript - 返回一个围绕 promise 的 promise

标签 javascript es6-promise

给定一些Promise(参数

我想创建另一个 Promise,它将进行一些处理,然后根据 somePromise 的结果解析/拒绝:

function wrapPromise() {
    return new Promise(function(resolve, reject) {
        // some processing
        somePromise(someParam).then(function() { resolve(); },  function(err) { reject(err); });
    });
}

这是执行此操作的正确方法还是有更短的语法?

最佳答案

你的要求听起来像我会做出 promise 。因此,如果第二个 promise 失败,第一个 promise 也应该失败。

暂时忘掉编程吧:如果你说,我会 promise 我不会吃冰淇淋,那只会让事情变得复杂。不,你只需 promise 你不会吃冰淇淋。

考虑重新设计您的代码,使其变得更简单,我将做出一个可以解决或拒绝的 promise (A)。我将做出另一个单独的 promise (B),该 promise 可以独立于 A 解决或拒绝。

或者只使用一个 Promise,但将代码分成单独的“then”链,例如

promise.then(function(result) {  // First 'then'
  console.log(result);           // Resolve case
}, function(err) {
  console.log(err);              // Reject case
}).then(function(val) {          // Second 'then'
  console.log(val);              // Resolve case
});

为了更好地理解,我强烈建议阅读:http://www.html5rocks.com/en/tutorials/es6/promises/

关于javascript - 返回一个围绕 promise 的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34756055/

相关文章:

javascript - Promise 链中的异步操作未按顺序执行

node.js - Mongoose:用 Promise 编写自己的方法

javascript - 搜索栏未在导航栏中对齐

javascript - 如果在函数内部设置了 Promise 对象,那么一旦函数完成,Promise 对象就会从内存中删除吗?

javascript - 如何从 Promise 返回字符串

javascript - JS Promise 在前一个 Promise 解析之前启动链中的下一个 Promise

javascript - AngularJS 中模糊事件后立即重新聚焦输入字段

javascript - JS将输入的单引号替换为另一个字符

javascript - 如何在 html 中显示简单的 Extjs 6 组件?

javascript - Google map 是否提供在 map 上绘制多个多边形的功能?